{"version":3,"file":"ractive.min.js","sources":["ractive.js"],"sourcesContent":["/*\n\tRactive.js v0.9.0-edge\n\tFri Dec 02 2016 17:14:38 GMT+0000 (UTC) - commit 6b8176217a75b19b96b6459d6f6ac3d49e126ea8\n\n\thttp://ractivejs.org\n\thttp://twitter.com/RactiveJS\n\n\tReleased under the MIT License.\n*/\n\n\n(function (global, factory) {\n\ttypeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n\ttypeof define === 'function' && define.amd ? define(factory) :\n\t((function() { var current = global.Ractive; var next = factory(); next.noConflict = function() { global.Ractive = current; return next; }; return global.Ractive = next; })());\n}(this, (function () { 'use strict';\n\nvar defaults = {\n\t// render placement:\n\tel: void 0,\n\tappend:\t\t\t\t false,\n\n\t// template:\n\ttemplate: null,\n\n\t// parse:\n\tdelimiters: [ '{{', '}}' ],\n\ttripleDelimiters: [ '{{{', '}}}' ],\n\tstaticDelimiters: [ '[[', ']]' ],\n\tstaticTripleDelimiters: [ '[[[', ']]]' ],\n\tcsp: \t\t\t\t\ttrue,\n\tinterpolate: false,\n\tpreserveWhitespace: false,\n\tsanitize: false,\n\tstripComments: true,\n\tcontextLines: 0,\n\n\t// data & binding:\n\tdata: {},\n\tcomputed: {},\n\tsyncComputedChildren: false,\n\tresolveInstanceMembers: true,\n\twarnAboutAmbiguity: false,\n\tmagic: false,\n\tmodifyArrays: false,\n\tadapt: [],\n\tisolated: false,\n\ttwoway: true,\n\tlazy: false,\n\n\t// transitions:\n\tnoIntro: false,\n\tnoOutro: false,\n\ttransitionsEnabled: true,\n\tcomplete: void 0,\n\tnestedTransitions: true,\n\n\t// css:\n\tcss: null,\n\tnoCssTransform: false\n};\n\n// These are a subset of the easing equations found at\n// https://raw.github.com/danro/easing-js - license info\n// follows:\n\n// --------------------------------------------------\n// easing.js v0.5.4\n// Generic set of easing functions with AMD support\n// https://github.com/danro/easing-js\n// This code may be freely distributed under the MIT license\n// http://danro.mit-license.org/\n// --------------------------------------------------\n// All functions adapted from Thomas Fuchs & Jeremy Kahn\n// Easing Equations (c) 2003 Robert Penner, BSD license\n// https://raw.github.com/danro/easing-js/master/LICENSE\n// --------------------------------------------------\n\n// In that library, the functions named easeIn, easeOut, and\n// easeInOut below are named easeInCubic, easeOutCubic, and\n// (you guessed it) easeInOutCubic.\n//\n// You can add additional easing functions to this list, and they\n// will be globally available.\n\n\nvar easing = {\n\tlinear: function linear ( pos ) { return pos; },\n\teaseIn: function easeIn ( pos ) { return Math.pow( pos, 3 ); },\n\teaseOut: function easeOut ( pos ) { return ( Math.pow( ( pos - 1 ), 3 ) + 1 ); },\n\teaseInOut: function easeInOut ( pos ) {\n\t\tif ( ( pos /= 0.5 ) < 1 ) { return ( 0.5 * Math.pow( pos, 3 ) ); }\n\t\treturn ( 0.5 * ( Math.pow( ( pos - 2 ), 3 ) + 2 ) );\n\t}\n};\n\nvar legacy = null;\n\n/* global console, navigator */\n/* eslint no-console:\"off\" */\n\nvar win = typeof window !== 'undefined' ? window : null;\nvar doc = win ? document : null;\n\nvar isClient = !!doc;\nvar isJsdom = ( typeof navigator !== 'undefined' && /jsDom/.test( navigator.appName ) );\nvar hasConsole = ( typeof console !== 'undefined' && typeof console.warn === 'function' && typeof console.warn.apply === 'function' );\n\nvar magic;\ntry {\n\tObject.defineProperty({}, 'test', { value: 0 });\n\tmagic = true;\n} catch ( e ) {\n\tmagic = false;\n}\n\nvar svg = doc ?\n\tdoc.implementation.hasFeature( 'http://www.w3.org/TR/SVG11/feature#BasicStructure', '1.1' ) :\n\tfalse;\n\nvar vendors = [ 'o', 'ms', 'moz', 'webkit' ];\n\nvar html = 'http://www.w3.org/1999/xhtml';\nvar mathml = 'http://www.w3.org/1998/Math/MathML';\nvar svg$1 = 'http://www.w3.org/2000/svg';\nvar xlink = 'http://www.w3.org/1999/xlink';\nvar xml = 'http://www.w3.org/XML/1998/namespace';\nvar xmlns = 'http://www.w3.org/2000/xmlns';\n\nvar namespaces = { html: html, mathml: mathml, svg: svg$1, xlink: xlink, xml: xml, xmlns: xmlns };\n\nvar createElement;\nvar matches;\nvar div;\nvar methodNames;\nvar unprefixed;\nvar prefixed;\nvar i;\nvar j;\nvar makeFunction;\n\n// Test for SVG support\nif ( !svg ) {\n\tcreateElement = function ( type, ns, extend ) {\n\t\tif ( ns && ns !== html ) {\n\t\t\tthrow 'This browser does not support namespaces other than http://www.w3.org/1999/xhtml. The most likely cause of this error is that you\\'re trying to render SVG in an older browser. See http://docs.ractivejs.org/latest/svg-and-older-browsers for more information';\n\t\t}\n\n\t\treturn extend ?\n\t\t\tdoc.createElement( type, extend ) :\n\t\t\tdoc.createElement( type );\n\t};\n} else {\n\tcreateElement = function ( type, ns, extend ) {\n\t\tif ( !ns || ns === html ) {\n\t\t\treturn extend ?\n\t\t\t\tdoc.createElement( type, extend ) :\n\t\t\t\tdoc.createElement( type );\n\t\t}\n\n\t\treturn extend ?\n\t\t\tdoc.createElementNS( ns, type, extend ) :\n\t\t\tdoc.createElementNS( ns, type );\n\t};\n}\n\nfunction createDocumentFragment () {\n\treturn doc.createDocumentFragment();\n}\n\nfunction getElement ( input ) {\n\tvar output;\n\n\tif ( !input || typeof input === 'boolean' ) { return; }\n\n\tif ( !win || !doc || !input ) {\n\t\treturn null;\n\t}\n\n\t// We already have a DOM node - no work to do. (Duck typing alert!)\n\tif ( input.nodeType ) {\n\t\treturn input;\n\t}\n\n\t// Get node from string\n\tif ( typeof input === 'string' ) {\n\t\t// try ID first\n\t\toutput = doc.getElementById( input );\n\n\t\t// then as selector, if possible\n\t\tif ( !output && doc.querySelector ) {\n\t\t\toutput = doc.querySelector( input );\n\t\t}\n\n\t\t// did it work?\n\t\tif ( output && output.nodeType ) {\n\t\t\treturn output;\n\t\t}\n\t}\n\n\t// If we've been given a collection (jQuery, Zepto etc), extract the first item\n\tif ( input[0] && input[0].nodeType ) {\n\t\treturn input[0];\n\t}\n\n\treturn null;\n}\n\nif ( !isClient ) {\n\tmatches = null;\n} else {\n\tdiv = createElement( 'div' );\n\tmethodNames = [ 'matches', 'matchesSelector' ];\n\n\tmakeFunction = function ( methodName ) {\n\t\treturn function ( node, selector ) {\n\t\t\treturn node[ methodName ]( selector );\n\t\t};\n\t};\n\n\ti = methodNames.length;\n\n\twhile ( i-- && !matches ) {\n\t\tunprefixed = methodNames[i];\n\n\t\tif ( div[ unprefixed ] ) {\n\t\t\tmatches = makeFunction( unprefixed );\n\t\t} else {\n\t\t\tj = vendors.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\tprefixed = vendors[i] + unprefixed.substr( 0, 1 ).toUpperCase() + unprefixed.substring( 1 );\n\n\t\t\t\tif ( div[ prefixed ] ) {\n\t\t\t\t\tmatches = makeFunction( prefixed );\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// IE8...\n\tif ( !matches ) {\n\t\tmatches = function ( node, selector ) {\n\t\t\tvar parentNode, i;\n\n\t\t\tparentNode = node.parentNode;\n\n\t\t\tif ( !parentNode ) {\n\t\t\t\t// empty dummy