{"version":3,"sources":["webpack:///webpack/bootstrap 198825cf9308a08d91c0","webpack:///./src/index.js","webpack:///./~/babel-runtime/core-js/json/stringify.js","webpack:///./~/core-js/library/fn/json/stringify.js","webpack:///./~/core-js/library/modules/_core.js","webpack:///./src/createNode.js","webpack:///./src/constructors/VirtualNode.js","webpack:///./~/babel-runtime/helpers/createClass.js","webpack:///./~/babel-runtime/core-js/object/define-property.js","webpack:///./~/core-js/library/fn/object/define-property.js","webpack:///./~/core-js/library/modules/es6.object.define-property.js","webpack:///./~/core-js/library/modules/_export.js","webpack:///./~/core-js/library/modules/_global.js","webpack:///./~/core-js/library/modules/_ctx.js","webpack:///./~/core-js/library/modules/_a-function.js","webpack:///./~/core-js/library/modules/_hide.js","webpack:///./~/core-js/library/modules/_object-dp.js","webpack:///./~/core-js/library/modules/_an-object.js","webpack:///./~/core-js/library/modules/_is-object.js","webpack:///./~/core-js/library/modules/_ie8-dom-define.js","webpack:///./~/core-js/library/modules/_descriptors.js","webpack:///./~/core-js/library/modules/_fails.js","webpack:///./~/core-js/library/modules/_dom-create.js","webpack:///./~/core-js/library/modules/_to-primitive.js","webpack:///./~/core-js/library/modules/_property-desc.js","webpack:///./~/core-js/library/modules/_has.js","webpack:///./~/babel-runtime/helpers/classCallCheck.js","webpack:///./src/render.js","webpack:///./src/createElement.js","webpack:///./~/babel-runtime/core-js/object/keys.js","webpack:///./~/core-js/library/fn/object/keys.js","webpack:///./~/core-js/library/modules/es6.object.keys.js","webpack:///./~/core-js/library/modules/_to-object.js","webpack:///./~/core-js/library/modules/_defined.js","webpack:///./~/core-js/library/modules/_object-keys.js","webpack:///./~/core-js/library/modules/_object-keys-internal.js","webpack:///./~/core-js/library/modules/_to-iobject.js","webpack:///./~/core-js/library/modules/_iobject.js","webpack:///./~/core-js/library/modules/_cof.js","webpack:///./~/core-js/library/modules/_array-includes.js","webpack:///./~/core-js/library/modules/_to-length.js","webpack:///./~/core-js/library/modules/_to-integer.js","webpack:///./~/core-js/library/modules/_to-absolute-index.js","webpack:///./~/core-js/library/modules/_shared-key.js","webpack:///./~/core-js/library/modules/_shared.js","webpack:///./~/core-js/library/modules/_library.js","webpack:///./~/core-js/library/modules/_uid.js","webpack:///./~/core-js/library/modules/_enum-bug-keys.js","webpack:///./~/core-js/library/modules/_object-sap.js","webpack:///./src/diff.js","webpack:///./src/constructors/VirtualPatch.js","webpack:///./src/patch.js"],"names":["todos","localStorage","setItem","mapTodos","map","todo","style","saveTodo","e","preventDefault","$inputEl","document","getElementById","push","value","makeTree","domRoot","display","onDblClick","console","log","type","id","onClick","JSON","parse","createNode","elType","atts","children","VirtualNode","VirtualText","text","attributes","_createChildren","child","tree","render","vRoot","$el","patches","newTree","patchNode","createElement","node","error","Error","createTextNode","forEach","k","setAttribute","createElementStyles","test","addEventListener","replace","toLowerCase","appendChild","bind","stylesMap","key","join","diff","oldTree","oldNode","walk","newNode","oldParentNode","recursivelyAssignEls","VirtualPatch","attsAreSame","maxChildren","Math","max","length","childPatchesArray","i","oldNodeChild","newNodeChild","childPatch","concat","$node","hasChildNodes","nodeType","childNodes","oldTreeAtts","newTreeAtts","oldTreeAttsKeys","newTreeAttsKeys","hasOwnProperty","toString","parentNode","replTarget","patch","domNode","reverse","applyPatch","removeChild","$patchEl","replaceChild"],"mappings":"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KAAP,KAAiB,QAAjB,IACA,OAAOA,KAAP,KAAiB,QADrB,EAC+B;AACpC,kBAAO,IAAIJ,WAAJ,CAAgBI,KAAhB,CAAP;AACD,UAHM,MAGA;AACL,kBAAO,IAAIL,WAAJ,CAAgBK,KAAhB,CAAP;AACD;AACF,QATM,CAAP;AAUD;;;;;AACF;;SAICJ,W,GAAAA,W;SACAD,W,GAAAA,W;;;;;;;;;ACjCF;;AAEA;;AAEA;;AAEA;;AAEA,uCAAsC,uCAAuC,gBAAgB;;AAE7F;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,EAAC,G;;;;;;;;;AC1BD,mBAAkB,wG;;;;;;;;;ACAlB;AACA;AACA;AACA;AACA;;;;;;;;;;ACJA;AACA;AACA,4FAAuE,gEAA4C;;;;;;;;;;ACFnH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAiE;AACjE;AACA,mFAAkF;AAClF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX,UAAS;AACT;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,gDAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA,eAAc;AACd,eAAc;AACd,eAAc;AACd,eAAc;AACd,gBAAe;AACf,gBAAe;AACf,gBAAe;AACf,iBAAgB;AAChB;;;;;;;;;;AC7DA;AACA;AACA;AACA;AACA;AACA,0CAAyC;;;;;;;;;;ACLzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACnBA;AACA;AACA;AACA;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;AACA;;;;;;;;;;ACPA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAG,YAAY;AACf;AACA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CA;AACA;AACA;AACA,EAAC;;;;;;;;;;ACRD;AACA;AACA;AACA;AACA;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;;;;;;;;;;ACJA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;ACNA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;AChBA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACLA,kBAAiB;;AAEjB;AACA;AACA;;;;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK,YAAY,eAAe;AAChC;AACA,MAAK;AACL;AACA;;;;;;;;;;ACtBA;AACA;AACA;AACA;AACA,4DAA2D;AAC3D;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;ACNA;AACA;AACA;AACA;AACA;;;;;;;;;;ACJA;AACA;AACA;AACA,mDAAkD;;AAElD;AACA,sEAAqE;AACrE,EAAC;AACD;AACA;AACA;AACA,EAAC;;;;;;;;;;ACXD;;;;;;;;;;ACAA;AACA;AACA;AACA;AACA;;;;;;;;;;ACJA;AACA;AACA;AACA;;;;;;;;;;ACHA;AACA;AACA;AACA;AACA;AACA,8BAA6B;AAC7B;AACA;AACA,sDAAqD,OAAO,EAAE;AAC9D;;;;;;;;;;;;;;;;;;;;;ACTA;;;;AACA;;AACA;;;;;;AAGA;;;;;AAKA,KAAMU,OAAO,SAAPA,IAAO,CAACC,OAAD,EAAUrB,OAAV,EAAsB;AACjC;AACA;AACA,OAAMsB,UAAUD,QAAQjC,QAAR,CAAiB,CAAjB,CAAhB;AACA,UAAOmC,KAAKD,OAAL,EAActB,OAAd,EAAuBqB,OAAvB,CAAP;AACD,EALD;;AAOA,KAAME,OAAO,SAAPA,IAAO,CAACD,OAAD,EAAUE,OAAV,EAAmBC,aAAnB,EAAq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","file":"index.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 198825cf9308a08d91c0","import createNode from \"./createNode\";\nimport render from \"./render\";\n\nconst todos = [];\nlocalStorage.setItem(\"todos\", JSON.stringify(todos));\n\nconst mapTodos = (todos) =>\n todos.map((todo) =>\n createNode(\n \"li\",\n {\n style: { \"margin-bottom\": \"10px\" },\n },\n [todo]\n )\n );\n\nconst saveTodo = (e) => {\n e.preventDefault();\n const $inputEl = document.getElementById(\"text\");\n todos.push($inputEl.value);\n localStorage.setItem(\"todos\", JSON.stringify(todos));\n $inputEl.value = \"\";\n render(makeTree(), domRoot);\n};\n\nconst makeTree = () =>\n createNode(\"div\", {}, [\n createNode(\"form\", { style: { \"margin-bottom\": \"20px\" } }, [\n createNode(\n \"label\",\n {\n style: {\n display: \"block\",\n \"margin-bottom\": \"10px\",\n \"font-weight\": 700,\n },\n onDblClick: () => console.log(\"dblclick\"),\n },\n [\"add a todo\"]\n ),\n createNode(\n \"input\",\n {\n style: { display: \"block\", \"margin-bottom\": \"10px\" },\n type: \"text\",\n id: \"text\",\n },\n [\"\"]\n ),\n createNode(\n \"button\",\n {\n style: { display: \"block\", \"margin-bottom\": \"10px\" },\n type: \"submit\",\n value: \"save todo\",\n id: \"submit\",\n onClick: saveTodo,\n },\n [\"Submit\"]\n ),\n ]),\n createNode(\n \"div\",\n {\n style: { \"font-weight\": 700 },\n },\n [\"todos\"]\n ),\n createNode(\"ul\", {}, mapTodos(JSON.parse(localStorage.todos))),\n ]);\n\nconst domRoot = document.getElementById(\"root\");\nrender(makeTree(), domRoot);\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/json/stringify.js\n// module id = 1\n// module chunks = 0","var core = require('../../modules/_core');\nvar $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify });\nmodule.exports = function stringify(it) { // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/json/stringify.js\n// module id = 2\n// module chunks = 0","var core = module.exports = { version: '2.6.12' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_core.js\n// module id = 3\n// module chunks = 0","import { VirtualNode } from './constructors/VirtualNode';\n\nconst createNode = (elType, atts = {}, children = []) => {\n return new VirtualNode(elType, atts, children);\n}\n\n\nexport default createNode;\n\n\n\n// WEBPACK FOOTER //\n// ./src/createNode.js","/*\n * create nodes\n */\nclass VirtualText {\n constructor(text) {\n this.text = text;\n }\n};\n\nclass VirtualNode {\n constructor(elType, attributes, children) {\n this.elType = elType;\n this.attributes = attributes;\n this.children = this._createChildren(children);\n }\n\n _createChildren(children) {\n return children.map(child => {\n if (child instanceof (VirtualNode || VirtualText)) {\n return child;\n } else if (typeof child === 'string' ||\n typeof child === 'number') {\n return new VirtualText(child);\n } else {\n return new VirtualNode(child);\n }\n });\n }\n};\n\n\nexport {\n VirtualText,\n VirtualNode\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/constructors/VirtualNode.js","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/createClass.js\n// module id = 6\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/define-property.js\n// module id = 7\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc) {\n return $Object.defineProperty(it, key, desc);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/define-property.js\n// module id = 8\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', { defineProperty: require('./_object-dp').f });\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.define-property.js\n// module id = 9\n// module chunks = 0","var global = require('./_global');\nvar core = require('./_core');\nvar ctx = require('./_ctx');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function (C) {\n var F = function (a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0: return new C();\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_export.js\n// module id = 10\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_global.js\n// module id = 11\n// module chunks = 0","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_ctx.js\n// module id = 12\n// module chunks = 0","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_a-function.js\n// module id = 13\n// module chunks = 0","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_hide.js\n// module id = 14\n// module chunks = 0","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-dp.js\n// module id = 15\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_an-object.js\n// module id = 16\n// module chunks = 0","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_is-object.js\n// module id = 17\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_ie8-dom-define.js\n// module id = 18\n// module chunks = 0","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_descriptors.js\n// module id = 19\n// module chunks = 0","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_fails.js\n// module id = 20\n// module chunks = 0","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_dom-create.js\n// module id = 21\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-primitive.js\n// module id = 22\n// module chunks = 0","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_property-desc.js\n// module id = 23\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_has.js\n// module id = 24\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/helpers/classCallCheck.js\n// module id = 25\n// module chunks = 0","import { VirtualNode } from \"./constructors/VirtualNode\";\nimport diff from \"./diff\";\nimport patch from \"./patch\";\n\nlet tree = new VirtualNode(\"\", {}, []);\n\nconst render = (vRoot, domRoot) => {\n if (!tree.$el) {\n tree.$el = domRoot;\n }\n const patches = diff(tree, vRoot);\n patch(domRoot, patches);\n const newTree = new VirtualNode(\"\", {}, [vRoot]);\n newTree.$el = domRoot;\n tree = newTree;\n\n console.log(\"patchNode\", patches[0].patchNode);\n console.log(\"vRoot\", vRoot);\n\n return tree;\n};\n\nexport default render;\n\n\n\n// WEBPACK FOOTER //\n// ./src/render.js","import { VirtualNode, VirtualText } from './constructors/VirtualNode';\n\n/*\n * create an HTML node element or text node\n *\n * node tree -> HTML element\n */\nconst createElement = (node) => {\n if ( !(node instanceof VirtualNode) &&\n !(node instanceof VirtualText) ) {\n console.error(node);\n throw new Error('Please pass a valid node.');\n }\n\n if (node instanceof VirtualText) {\n return document.createTextNode(node.text)\n }\n\n const { elType, attributes, children, id } = node;\n const $el = document.createElement(elType);\n\n Object.keys(attributes).forEach(k => {\n if (k === 'style') {\n $el.setAttribute(k, createElementStyles(attributes[k]));\n } else if (/^on\\w*/.test(k)) {\n $el.addEventListener(k.replace('on', '').toLowerCase(), attributes[k]);\n } else {\n $el.setAttribute(k, attributes[k]);\n }\n });\n\n children.map(createElement)\n .forEach($el.appendChild.bind($el));\n\n return $el;\n};\n\nconst createElementStyles = (stylesMap) => {\n return Object.keys(stylesMap).map((key) => {\n return `${key}: ${stylesMap[key]}`;\n }).join('; ');\n};\n\n\nexport default createElement;\nexport {\n createElementStyles\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/createElement.js","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/babel-runtime/core-js/object/keys.js\n// module id = 28\n// module chunks = 0","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/fn/object/keys.js\n// module id = 29\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object');\nvar $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function () {\n return function keys(it) {\n return $keys(toObject(it));\n };\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/es6.object.keys.js\n// module id = 30\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-object.js\n// module id = 31\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_defined.js\n// module id = 32\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-keys.js\n// module id = 33\n// module chunks = 0","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-keys-internal.js\n// module id = 34\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-iobject.js\n// module id = 35\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_iobject.js\n// module id = 36\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_cof.js\n// module id = 37\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_array-includes.js\n// module id = 38\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-length.js\n// module id = 39\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-integer.js\n// module id = 40\n// module chunks = 0","var toInteger = require('./_to-integer');\nvar max = Math.max;\nvar min = Math.min;\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_to-absolute-index.js\n// module id = 41\n// module chunks = 0","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_shared-key.js\n// module id = 42\n// module chunks = 0","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_shared.js\n// module id = 43\n// module chunks = 0","module.exports = true;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_library.js\n// module id = 44\n// module chunks = 0","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_uid.js\n// module id = 45\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_enum-bug-keys.js\n// module id = 46\n// module chunks = 0","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export');\nvar core = require('./_core');\nvar fails = require('./_fails');\nmodule.exports = function (KEY, exec) {\n var fn = (core.Object || {})[KEY] || Object[KEY];\n var exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/core-js/library/modules/_object-sap.js\n// module id = 47\n// module chunks = 0","import VirtualPatch from './constructors/VirtualPatch';\nimport { VirtualText } from './constructors/VirtualNode';\nimport createElement from './createElement';\n\n\n/*\n * diff two trees\n *\n * return array of patches\n */\nconst diff = (oldTree, newTree) => {\n // this grabs the first child from the #root element,\n // which we don't want to modify\n const oldNode = oldTree.children[0];\n return walk(oldNode, newTree, oldTree);\n};\n\nconst walk = (oldNode, newNode, oldParentNode) => {\n if (oldNode === newNode) {\n return;\n }\n\n if (!oldNode) {\n // ADD\n recursivelyAssignEls(createElement(newNode), newNode);\n return [new VirtualPatch(newNode, oldParentNode, 'ADD')];\n } else if (!newNode) {\n // DEL\n return [new VirtualPatch(oldNode, oldParentNode, 'DEL')];\n } else if (oldNode instanceof VirtualText && newNode instanceof VirtualText) {\n if (oldNode.text !== newNode.text) {\n // REPL\n // a. is text node with different values\n recursivelyAssignEls(createElement(newNode), newNode);\n return [new VirtualPatch(newNode, oldParentNode, 'REPL', oldNode)];\n }\n // b. no difference\n return;\n } else {\n if ( oldNode.elType !== newNode.elType ||\n !attsAreSame(oldNode.attributes, newNode.attributes) ) {\n // REPL\n // c. are different types\n // d. have different attributes\n // TODO: only change the atts, not entire node\n recursivelyAssignEls(createElement(newNode), newNode);\n return [new VirtualPatch(newNode, oldParentNode, 'REPL', oldNode)];\n } else {\n // check children\n // TODO: allow for individual children to change, rather than modifying\n // all children after a changed node\n\n newNode.$el = oldNode.$el;\n\n const maxChildren = Math.max(oldNode.children.length, newNode.children.length);\n let childPatchesArray = [];\n\n for (let i = 0; i <= maxChildren; i++) {\n const oldNodeChild = oldNode.children[i];\n const newNodeChild = newNode.children[i];\n const childPatch = walk(oldNodeChild, newNodeChild, oldNode);\n if (childPatch) {\n childPatchesArray = childPatchesArray.concat(childPatch);\n }\n }\n return childPatchesArray;\n }\n }\n\n};\n\nconst recursivelyAssignEls = ($node, newNode) => {\n newNode.$el = $node;\n if ($node.hasChildNodes() && $node.nodeType !== 3) {\n for (let i = 0; i < $node.childNodes.length; i++) {\n recursivelyAssignEls($node.childNodes[i], newNode.children[i]);\n }\n }\n};\n\nconst attsAreSame = (oldTreeAtts, newTreeAtts) => {\n if (!oldTreeAtts || !newTreeAtts) return true;\n\n const oldTreeAttsKeys = Object.keys(oldTreeAtts);\n const newTreeAttsKeys = Object.keys(newTreeAtts);\n\n if (oldTreeAttsKeys.length !== newTreeAttsKeys.length) {\n return false;\n }\n\n for (let i = 0; i < oldTreeAttsKeys.length; i++) {\n const key = oldTreeAttsKeys[i];\n if (oldTreeAtts.hasOwnProperty(key) && newTreeAtts.hasOwnProperty(key)) {\n if (key === 'style') {\n if (!attsAreSame(oldTreeAtts[key], newTreeAtts[key])) {\n return false;\n }\n } else if (/^on\\w*/.test(key)) {\n if (newTreeAtts[key].toString() !== oldTreeAtts[key].toString()) {\n return false;\n }\n } else {\n if (oldTreeAtts[key] !== newTreeAtts[key]) {\n return false;\n }\n }\n }\n }\n\n return true;\n};\n\n\nexport default diff;\nexport {\n walk,\n attsAreSame,\n recursivelyAssignEls\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/diff.js","class VirtualPatch {\n constructor(patchNode, parentNode, type, replTarget) {\n this.patchNode = patchNode;\n this.parentNode = parentNode;\n this.type = type;\n this.replTarget = replTarget;\n }\n};\n\nexport default VirtualPatch;\n\n\n\n// WEBPACK FOOTER //\n// ./src/constructors/VirtualPatch.js","import VirtualPatch from './constructors/VirtualPatch';\nimport { VirtualText } from './constructors/VirtualNode';\nimport createElement from './createElement';\n\n/*\n * apply patches to root tree\n *\n * apply patches to dom nodes\n */\nconst patch = (domNode, patches) => {\n // need to reverse patches so they get applied in order\n patches.reverse().forEach(applyPatch);\n\n return domNode;\n};\n\nconst applyPatch = ({ patchNode, parentNode, type, replTarget }) => {\n if (type === 'ADD') {\n parentNode.$el.appendChild(patchNode.$el);\n } else if (type === 'DEL') {\n parentNode.$el.removeChild(\n $patchEl\n );\n } else if (type === 'REPL') {\n parentNode.$el.replaceChild(\n patchNode.$el,\n replTarget.$el\n );\n }\n};\n\n\nexport default patch;\nexport {\n applyPatch\n};\n\n\n\n// WEBPACK FOOTER //\n// ./src/patch.js"],"sourceRoot":""}