made with requirebin
Created
September 30, 2014 04:28
-
-
Save patrickkettner/c4c0303267487e010973 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var Handlebars = require('handlebars'); | |
Handlebars.registerHelper('uuid', function(obj) { | |
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { | |
var r = Math.random() * 16 | 0, | |
v = c == 'x' ? r : (r & 0x3 | 0x8); | |
return v.toString(16); | |
}); | |
}); | |
Handlebars.registerHelper('page-helper', function(uuid, context) { | |
return '<div class="page" ' + | |
"data-uuid='" + uuid + "'" + | |
context.fn(this) + | |
'</div>'; | |
}); | |
var template = Handlebars.compile("{{#page-helper (uuid) }} hello {{/page-helper}}"); | |
alert(template({})); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){},{}],2:[function(require,module,exports){"use strict";var Handlebars=require("./handlebars.runtime")["default"];var AST=require("./handlebars/compiler/ast")["default"];var Parser=require("./handlebars/compiler/base").parser;var parse=require("./handlebars/compiler/base").parse;var Compiler=require("./handlebars/compiler/compiler").Compiler;var compile=require("./handlebars/compiler/compiler").compile;var precompile=require("./handlebars/compiler/compiler").precompile;var JavaScriptCompiler=require("./handlebars/compiler/javascript-compiler")["default"];var _create=Handlebars.create;var create=function(){var hb=_create();hb.compile=function(input,options){return compile(input,options,hb)};hb.precompile=function(input,options){return precompile(input,options,hb)};hb.AST=AST;hb.Compiler=Compiler;hb.JavaScriptCompiler=JavaScriptCompiler;hb.Parser=Parser;hb.parse=parse;return hb};Handlebars=create();Handlebars.create=create;Handlebars["default"]=Handlebars;exports["default"]=Handlebars},{"./handlebars.runtime":3,"./handlebars/compiler/ast":5,"./handlebars/compiler/base":6,"./handlebars/compiler/compiler":7,"./handlebars/compiler/javascript-compiler":9}],3:[function(require,module,exports){"use strict";var base=require("./handlebars/base");var SafeString=require("./handlebars/safe-string")["default"];var Exception=require("./handlebars/exception")["default"];var Utils=require("./handlebars/utils");var runtime=require("./handlebars/runtime");var create=function(){var hb=new base.HandlebarsEnvironment;Utils.extend(hb,base);hb.SafeString=SafeString;hb.Exception=Exception;hb.Utils=Utils;hb.escapeExpression=Utils.escapeExpression;hb.VM=runtime;hb.template=function(spec){return runtime.template(spec,hb)};return hb};var Handlebars=create();Handlebars.create=create;Handlebars["default"]=Handlebars;exports["default"]=Handlebars},{"./handlebars/base":4,"./handlebars/exception":13,"./handlebars/runtime":14,"./handlebars/safe-string":15,"./handlebars/utils":16}],4:[function(require,module,exports){"use strict";var Utils=require("./utils");var Exception=require("./exception")["default"];var VERSION="2.0.0";exports.VERSION=VERSION;var COMPILER_REVISION=6;exports.COMPILER_REVISION=COMPILER_REVISION;var REVISION_CHANGES={1:"<= 1.0.rc.2",2:"== 1.0.0-rc.3",3:"== 1.0.0-rc.4",4:"== 1.x.x",5:"== 2.0.0-alpha.x",6:">= 2.0.0-beta.1"};exports.REVISION_CHANGES=REVISION_CHANGES;var isArray=Utils.isArray,isFunction=Utils.isFunction,toString=Utils.toString,objectType="[object Object]";function HandlebarsEnvironment(helpers,partials){this.helpers=helpers||{};this.partials=partials||{};registerDefaultHelpers(this)}exports.HandlebarsEnvironment=HandlebarsEnvironment;HandlebarsEnvironment.prototype={constructor:HandlebarsEnvironment,logger:logger,log:log,registerHelper:function(name,fn){if(toString.call(name)===objectType){if(fn){throw new Exception("Arg not supported with multiple helpers")}Utils.extend(this.helpers,name)}else{this.helpers[name]=fn}},unregisterHelper:function(name){delete this.helpers[name]},registerPartial:function(name,partial){if(toString.call(name)===objectType){Utils.extend(this.partials,name)}else{this.partials[name]=partial}},unregisterPartial:function(name){delete this.partials[name]}};function registerDefaultHelpers(instance){instance.registerHelper("helperMissing",function(){if(arguments.length===1){return undefined}else{throw new Exception("Missing helper: '"+arguments[arguments.length-1].name+"'")}});instance.registerHelper("blockHelperMissing",function(context,options){var inverse=options.inverse,fn=options.fn;if(context===true){return fn(this)}else if(context===false||context==null){return inverse(this)}else if(isArray(context)){if(context.length>0){if(options.ids){options.ids=[options.name]}return instance.helpers.each(context,options)}else{return inverse(this)}}else{if(options.data&&options.ids){var data=createFrame(options.data);data.contextPath=Utils.appendContextPath(options.data.contextPath,options.name);options={data:data}}return fn(context,options)}});instance.registerHelper("each",function(context,options){if(!options){throw new Exception("Must pass iterator to #each")}var fn=options.fn,inverse=options.inverse;var i=0,ret="",data;var contextPath;if(options.data&&options.ids){contextPath=Utils.appendContextPath(options.data.contextPath,options.ids[0])+"."}if(isFunction(context)){context=context.call(this)}if(options.data){data=createFrame(options.data)}if(context&&typeof context==="object"){if(isArray(context)){for(var j=context.length;i<j;i++){if(data){data.index=i;data.first=i===0;data.last=i===context.length-1;if(contextPath){data.contextPath=contextPath+i}}ret=ret+fn(context[i],{data:data})}}else{for(var key in context){if(context.hasOwnProperty(key)){if(data){data.key=key;data.index=i;data.first=i===0;if(contextPath){data.contextPath=contextPath+key}}ret=ret+fn(context[key],{data:data});i++}}}}if(i===0){ret=inverse(this)}return ret});instance.registerHelper("if",function(conditional,options){if(isFunction(conditional)){conditional=conditional.call(this)}if(!options.hash.includeZero&&!conditional||Utils.isEmpty(conditional)){return options.inverse(this)}else{return options.fn(this)}});instance.registerHelper("unless",function(conditional,options){return instance.helpers["if"].call(this,conditional,{fn:options.inverse,inverse:options.fn,hash:options.hash})});instance.registerHelper("with",function(context,options){if(isFunction(context)){context=context.call(this)}var fn=options.fn;if(!Utils.isEmpty(context)){if(options.data&&options.ids){var data=createFrame(options.data);data.contextPath=Utils.appendContextPath(options.data.contextPath,options.ids[0]);options={data:data}}return fn(context,options)}else{return options.inverse(this)}});instance.registerHelper("log",function(message,options){var level=options.data&&options.data.level!=null?parseInt(options.data.level,10):1;instance.log(level,message)});instance.registerHelper("lookup",function(obj,field){return obj&&obj[field]})}var logger={methodMap:{0:"debug",1:"info",2:"warn",3:"error"},DEBUG:0,INFO:1,WARN:2,ERROR:3,level:3,log:function(level,message){if(logger.level<=level){var method=logger.methodMap[level];if(typeof console!=="undefined"&&console[method]){console[method].call(console,message)}}}};exports.logger=logger;var log=logger.log;exports.log=log;var createFrame=function(object){var frame=Utils.extend({},object);frame._parent=object;return frame};exports.createFrame=createFrame},{"./exception":13,"./utils":16}],5:[function(require,module,exports){"use strict";var Exception=require("../exception")["default"];function LocationInfo(locInfo){locInfo=locInfo||{};this.firstLine=locInfo.first_line;this.firstColumn=locInfo.first_column;this.lastColumn=locInfo.last_column;this.lastLine=locInfo.last_line}var AST={ProgramNode:function(statements,strip,locInfo){LocationInfo.call(this,locInfo);this.type="program";this.statements=statements;this.strip=strip},MustacheNode:function(rawParams,hash,open,strip,locInfo){LocationInfo.call(this,locInfo);this.type="mustache";this.strip=strip;if(open!=null&&open.charAt){var escapeFlag=open.charAt(3)||open.charAt(2);this.escaped=escapeFlag!=="{"&&escapeFlag!=="&"}else{this.escaped=!!open}if(rawParams instanceof AST.SexprNode){this.sexpr=rawParams}else{this.sexpr=new AST.SexprNode(rawParams,hash)}this.id=this.sexpr.id;this.params=this.sexpr.params;this.hash=this.sexpr.hash;this.eligibleHelper=this.sexpr.eligibleHelper;this.isHelper=this.sexpr.isHelper},SexprNode:function(rawParams,hash,locInfo){LocationInfo.call(this,locInfo);this.type="sexpr";this.hash=hash;var id=this.id=rawParams[0];var params=this.params=rawParams.slice(1);this.isHelper=!!(params.length||hash);this.eligibleHelper=this.isHelper||id.isSimple},PartialNode:function(partialName,context,hash,strip,locInfo){LocationInfo.call(this,locInfo);this.type="partial";this.partialName=partialName;this.context=context;this.hash=hash;this.strip=strip;this.strip.inlineStandalone=true},BlockNode:function(mustache,program,inverse,strip,locInfo){LocationInfo.call(this,locInfo);this.type="block";this.mustache=mustache;this.program=program;this.inverse=inverse;this.strip=strip;if(inverse&&!program){this.isInverse=true}},RawBlockNode:function(mustache,content,close,locInfo){LocationInfo.call(this,locInfo);if(mustache.sexpr.id.original!==close){throw new Exception(mustache.sexpr.id.original+" doesn't match "+close,this)}content=new AST.ContentNode(content,locInfo);this.type="block";this.mustache=mustache;this.program=new AST.ProgramNode([content],{},locInfo)},ContentNode:function(string,locInfo){LocationInfo.call(this,locInfo);this.type="content";this.original=this.string=string},HashNode:function(pairs,locInfo){LocationInfo.call(this,locInfo);this.type="hash";this.pairs=pairs},IdNode:function(parts,locInfo){LocationInfo.call(this,locInfo);this.type="ID";var original="",dig=[],depth=0,depthString="";for(var i=0,l=parts.length;i<l;i++){var part=parts[i].part;original+=(parts[i].separator||"")+part;if(part===".."||part==="."||part==="this"){if(dig.length>0){throw new Exception("Invalid path: "+original,this)}else if(part===".."){depth++;depthString+="../"}else{this.isScoped=true}}else{dig.push(part)}}this.original=original;this.parts=dig;this.string=dig.join(".");this.depth=depth;this.idName=depthString+this.string;this.isSimple=parts.length===1&&!this.isScoped&&depth===0;this.stringModeValue=this.string},PartialNameNode:function(name,locInfo){LocationInfo.call(this,locInfo);this.type="PARTIAL_NAME";this.name=name.original},DataNode:function(id,locInfo){LocationInfo.call(this,locInfo);this.type="DATA";this.id=id;this.stringModeValue=id.stringModeValue;this.idName="@"+id.stringModeValue},StringNode:function(string,locInfo){LocationInfo.call(this,locInfo);this.type="STRING";this.original=this.string=this.stringModeValue=string},NumberNode:function(number,locInfo){LocationInfo.call(this,locInfo);this.type="NUMBER";this.original=this.number=number;this.stringModeValue=Number(number)},BooleanNode:function(bool,locInfo){LocationInfo.call(this,locInfo);this.type="BOOLEAN";this.bool=bool;this.stringModeValue=bool==="true"},CommentNode:function(comment,locInfo){LocationInfo.call(this,locInfo);this.type="comment";this.comment=comment;this.strip={inlineStandalone:true}}};exports["default"]=AST},{"../exception":13}],6:[function(require,module,exports){"use strict";var parser=require("./parser")["default"];var AST=require("./ast")["default"];var Helpers=require("./helpers");var extend=require("../utils").extend;exports.parser=parser;var yy={};extend(yy,Helpers,AST);function parse(input){if(input.constructor===AST.ProgramNode){return input}parser.yy=yy;return parser.parse(input)}exports.parse=parse},{"../utils":16,"./ast":5,"./helpers":8,"./parser":10}],7:[function(require,module,exports){"use strict";var Exception=require("../exception")["default"];var isArray=require("../utils").isArray;var slice=[].slice;function Compiler(){}exports.Compiler=Compiler;Compiler.prototype={compiler:Compiler,equals:function(other){var len=this.opcodes.length;if(other.opcodes.length!==len){return false}for(var i=0;i<len;i++){var opcode=this.opcodes[i],otherOpcode=other.opcodes[i];if(opcode.opcode!==otherOpcode.opcode||!argEquals(opcode.args,otherOpcode.args)){return false}}len=this.children.length;for(i=0;i<len;i++){if(!this.children[i].equals(other.children[i])){return false}}return true},guid:0,compile:function(program,options){this.opcodes=[];this.children=[];this.depths={list:[]};this.options=options;this.stringParams=options.stringParams;this.trackIds=options.trackIds;var knownHelpers=this.options.knownHelpers;this.options.knownHelpers={helperMissing:true,blockHelperMissing:true,each:true,"if":true,unless:true,"with":true,log:true,lookup:true};if(knownHelpers){for(var name in knownHelpers){this.options.knownHelpers[name]=knownHelpers[name]}}return this.accept(program)},accept:function(node){return this[node.type](node)},program:function(program){var statements=program.statements;for(var i=0,l=statements.length;i<l;i++){this.accept(statements[i])}this.isSimple=l===1;this.depths.list=this.depths.list.sort(function(a,b){return a-b});return this},compileProgram:function(program){var result=(new this.compiler).compile(program,this.options);var guid=this.guid++,depth;this.usePartial=this.usePartial||result.usePartial;this.children[guid]=result;for(var i=0,l=result.depths.list.length;i<l;i++){depth=result.depths.list[i];if(depth<2){continue}else{this.addDepth(depth-1)}}return guid},block:function(block){var mustache=block.mustache,program=block.program,inverse=block.inverse;if(program){program=this.compileProgram(program)}if(inverse){inverse=this.compileProgram(inverse)}var sexpr=mustache.sexpr;var type=this.classifySexpr(sexpr);if(type==="helper"){this.helperSexpr(sexpr,program,inverse)}else if(type==="simple"){this.simpleSexpr(sexpr);this.opcode("pushProgram",program);this.opcode("pushProgram",inverse);this.opcode("emptyHash");this.opcode("blockValue",sexpr.id.original)}else{this.ambiguousSexpr(sexpr,program,inverse);this.opcode("pushProgram",program);this.opcode("pushProgram",inverse);this.opcode("emptyHash");this.opcode("ambiguousBlockValue")}this.opcode("append")},hash:function(hash){var pairs=hash.pairs,i,l;this.opcode("pushHash");for(i=0,l=pairs.length;i<l;i++){this.pushParam(pairs[i][1])}while(i--){this.opcode("assignToHash",pairs[i][0])}this.opcode("popHash")},partial:function(partial){var partialName=partial.partialName;this.usePartial=true;if(partial.hash){this.accept(partial.hash)}else{this.opcode("push","undefined")}if(partial.context){this.accept(partial.context)}else{this.opcode("getContext",0);this.opcode("pushContext")}this.opcode("invokePartial",partialName.name,partial.indent||"");this.opcode("append")},content:function(content){if(content.string){this.opcode("appendContent",content.string)}},mustache:function(mustache){this.sexpr(mustache.sexpr);if(mustache.escaped&&!this.options.noEscape){this.opcode("appendEscaped")}else{this.opcode("append")}},ambiguousSexpr:function(sexpr,program,inverse){var id=sexpr.id,name=id.parts[0],isBlock=program!=null||inverse!=null;this.opcode("getContext",id.depth);this.opcode("pushProgram",program);this.opcode("pushProgram",inverse);this.ID(id);this.opcode("invokeAmbiguous",name,isBlock)},simpleSexpr:function(sexpr){var id=sexpr.id;if(id.type==="DATA"){this.DATA(id)}else if(id.parts.length){this.ID(id)}else{this.addDepth(id.depth);this.opcode("getContext",id.depth);this.opcode("pushContext")}this.opcode("resolvePossibleLambda")},helperSexpr:function(sexpr,program,inverse){var params=this.setupFullMustacheParams(sexpr,program,inverse),id=sexpr.id,name=id.parts[0];if(this.options.knownHelpers[name]){this.opcode("invokeKnownHelper",params.length,name)}else if(this.options.knownHelpersOnly){throw new Exception("You specified knownHelpersOnly, but used the unknown helper "+name,sexpr)}else{id.falsy=true;this.ID(id);this.opcode("invokeHelper",params.length,id.original,id.isSimple)}},sexpr:function(sexpr){var type=this.classifySexpr(sexpr);if(type==="simple"){this.simpleSexpr(sexpr)}else if(type==="helper"){this.helperSexpr(sexpr)}else{this.ambiguousSexpr(sexpr)}},ID:function(id){this.addDepth(id.depth);this.opcode("getContext",id.depth);var name=id.parts[0];if(!name){this.opcode("pushContext")}else{this.opcode("lookupOnContext",id.parts,id.falsy,id.isScoped)}},DATA:function(data){this.options.data=true;this.opcode("lookupData",data.id.depth,data.id.parts)},STRING:function(string){this.opcode("pushString",string.string)},NUMBER:function(number){this.opcode("pushLiteral",number.number)},BOOLEAN:function(bool){this.opcode("pushLiteral",bool.bool)},comment:function(){},opcode:function(name){this.opcodes.push({opcode:name,args:slice.call(arguments,1)})},addDepth:function(depth){if(depth===0){return}if(!this.depths[depth]){this.depths[depth]=true;this.depths.list.push(depth)}},classifySexpr:function(sexpr){var isHelper=sexpr.isHelper;var isEligible=sexpr.eligibleHelper;var options=this.options;if(isEligible&&!isHelper){var name=sexpr.id.parts[0];if(options.knownHelpers[name]){isHelper=true}else if(options.knownHelpersOnly){isEligible=false}}if(isHelper){return"helper"}else if(isEligible){return"ambiguous"}else{return"simple"}},pushParams:function(params){for(var i=0,l=params.length;i<l;i++){this.pushParam(params[i])}},pushParam:function(val){if(this.stringParams){if(val.depth){this.addDepth(val.depth)}this.opcode("getContext",val.depth||0);this.opcode("pushStringParam",val.stringModeValue,val.type);if(val.type==="sexpr"){this.sexpr(val)}}else{if(this.trackIds){this.opcode("pushId",val.type,val.idName||val.stringModeValue)}this.accept(val)}},setupFullMustacheParams:function(sexpr,program,inverse){var params=sexpr.params;this.pushParams(params);this.opcode("pushProgram",program);this.opcode("pushProgram",inverse);if(sexpr.hash){this.hash(sexpr.hash)}else{this.opcode("emptyHash")}return params}};function precompile(input,options,env){if(input==null||typeof input!=="string"&&input.constructor!==env.AST.ProgramNode){throw new Exception("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+input)}options=options||{};if(!("data"in options)){options.data=true}if(options.compat){options.useDepths=true}var ast=env.parse(input);var environment=(new env.Compiler).compile(ast,options);return(new env.JavaScriptCompiler).compile(environment,options)}exports.precompile=precompile;function compile(input,options,env){if(input==null||typeof input!=="string"&&input.constructor!==env.AST.ProgramNode){throw new Exception("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+input)}options=options||{};if(!("data"in options)){options.data=true}if(options.compat){options.useDepths=true}var compiled;function compileInput(){var ast=env.parse(input);var environment=(new env.Compiler).compile(ast,options);var templateSpec=(new env.JavaScriptCompiler).compile(environment,options,undefined,true);return env.template(templateSpec)}var ret=function(context,options){if(!compiled){compiled=compileInput()}return compiled.call(this,context,options)};ret._setup=function(options){if(!compiled){compiled=compileInput()}return compiled._setup(options)};ret._child=function(i,data,depths){if(!compiled){compiled=compileInput()}return compiled._child(i,data,depths)};return ret}exports.compile=compile;function argEquals(a,b){if(a===b){return true}if(isArray(a)&&isArray(b)&&a.length===b.length){for(var i=0;i<a.length;i++){if(!argEquals(a[i],b[i])){return false}}return true}}},{"../exception":13,"../utils":16}],8:[function(require,module,exports){"use strict";var Exception=require("../exception")["default"];function stripFlags(open,close){return{left:open.charAt(2)==="~",right:close.charAt(close.length-3)==="~"}}exports.stripFlags=stripFlags;function prepareBlock(mustache,program,inverseAndProgram,close,inverted,locInfo){if(mustache.sexpr.id.original!==close.path.original){throw new Exception(mustache.sexpr.id.original+" doesn't match "+close.path.original,mustache)}var inverse=inverseAndProgram&&inverseAndProgram.program;var strip={left:mustache.strip.left,right:close.strip.right,openStandalone:isNextWhitespace(program.statements),closeStandalone:isPrevWhitespace((inverse||program).statements)};if(mustache.strip.right){omitRight(program.statements,null,true)}if(inverse){var inverseStrip=inverseAndProgram.strip;if(inverseStrip.left){omitLeft(program.statements,null,true)}if(inverseStrip.right){omitRight(inverse.statements,null,true)}if(close.strip.left){omitLeft(inverse.statements,null,true)}if(isPrevWhitespace(program.statements)&&isNextWhitespace(inverse.statements)){omitLeft(program.statements);omitRight(inverse.statements)}}else{if(close.strip.left){omitLeft(program.statements,null,true)}}if(inverted){return new this.BlockNode(mustache,inverse,program,strip,locInfo)}else{return new this.BlockNode(mustache,program,inverse,strip,locInfo)}}exports.prepareBlock=prepareBlock;function prepareProgram(statements,isRoot){for(var i=0,l=statements.length;i<l;i++){var current=statements[i],strip=current.strip;if(!strip){continue}var _isPrevWhitespace=isPrevWhitespace(statements,i,isRoot,current.type==="partial"),_isNextWhitespace=isNextWhitespace(statements,i,isRoot),openStandalone=strip.openStandalone&&_isPrevWhitespace,closeStandalone=strip.closeStandalone&&_isNextWhitespace,inlineStandalone=strip.inlineStandalone&&_isPrevWhitespace&&_isNextWhitespace;if(strip.right){omitRight(statements,i,true)}if(strip.left){omitLeft(statements,i,true)}if(inlineStandalone){omitRight(statements,i);if(omitLeft(statements,i)){if(current.type==="partial"){current.indent=/([ \t]+$)/.exec(statements[i-1].original)?RegExp.$1:""}}}if(openStandalone){omitRight((current.program||current.inverse).statements);omitLeft(statements,i)}if(closeStandalone){omitRight(statements,i);omitLeft((current.inverse||current.program).statements)}}return statements}exports.prepareProgram=prepareProgram;function isPrevWhitespace(statements,i,isRoot){if(i===undefined){i=statements.length}var prev=statements[i-1],sibling=statements[i-2];if(!prev){return isRoot}if(prev.type==="content"){return(sibling||!isRoot?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(prev.original)}}function isNextWhitespace(statements,i,isRoot){if(i===undefined){i=-1}var next=statements[i+1],sibling=statements[i+2];if(!next){return isRoot}if(next.type==="content"){return(sibling||!isRoot?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(next.original)}}function omitRight(statements,i,multiple){var current=statements[i==null?0:i+1];if(!current||current.type!=="content"||!multiple&¤t.rightStripped){return}var original=current.string;current.string=current.string.replace(multiple?/^\s+/:/^[ \t]*\r?\n?/,"");current.rightStripped=current.string!==original}function omitLeft(statements,i,multiple){var current=statements[i==null?statements.length-1:i-1];if(!current||current.type!=="content"||!multiple&¤t.leftStripped){return}var original=current.string;current.string=current.string.replace(multiple?/\s+$/:/[ \t]+$/,"");current.leftStripped=current.string!==original;return current.leftStripped}},{"../exception":13}],9:[function(require,module,exports){"use strict";var COMPILER_REVISION=require("../base").COMPILER_REVISION;var REVISION_CHANGES=require("../base").REVISION_CHANGES;var Exception=require("../exception")["default"];function Literal(value){this.value=value}function JavaScriptCompiler(){}JavaScriptCompiler.prototype={nameLookup:function(parent,name){if(JavaScriptCompiler.isValidJavaScriptVariableName(name)){return parent+"."+name}else{return parent+"['"+name+"']"}},depthedLookup:function(name){this.aliases.lookup="this.lookup";return'lookup(depths, "'+name+'")'},compilerInfo:function(){var revision=COMPILER_REVISION,versions=REVISION_CHANGES[revision];return[revision,versions]},appendToBuffer:function(string){if(this.environment.isSimple){return"return "+string+";"}else{return{appendToBuffer:true,content:string,toString:function(){return"buffer += "+string+";"}}}},initializeBuffer:function(){return this.quotedString("")},namespace:"Handlebars",compile:function(environment,options,context,asObject){this.environment=environment;this.options=options;this.stringParams=this.options.stringParams;this.trackIds=this.options.trackIds;this.precompile=!asObject;this.name=this.environment.name;this.isChild=!!context;this.context=context||{programs:[],environments:[]};this.preamble();this.stackSlot=0;this.stackVars=[];this.aliases={};this.registers={list:[]};this.hashes=[];this.compileStack=[];this.inlineStack=[];this.compileChildren(environment,options);this.useDepths=this.useDepths||environment.depths.list.length||this.options.compat;var opcodes=environment.opcodes,opcode,i,l;for(i=0,l=opcodes.length;i<l;i++){opcode=opcodes[i];this[opcode.opcode].apply(this,opcode.args)}this.pushSource("");if(this.stackSlot||this.inlineStack.length||this.compileStack.length){throw new Exception("Compile completed with content left on stack")}var fn=this.createFunctionContext(asObject);if(!this.isChild){var ret={compiler:this.compilerInfo(),main:fn};var programs=this.context.programs;for(i=0,l=programs.length;i<l;i++){if(programs[i]){ret[i]=programs[i]}}if(this.environment.usePartial){ret.usePartial=true}if(this.options.data){ret.useData=true}if(this.useDepths){ret.useDepths=true}if(this.options.compat){ret.compat=true}if(!asObject){ret.compiler=JSON.stringify(ret.compiler);ret=this.objectLiteral(ret)}return ret}else{return fn}},preamble:function(){this.lastContext=0;this.source=[]},createFunctionContext:function(asObject){var varDeclarations="";var locals=this.stackVars.concat(this.registers.list);if(locals.length>0){varDeclarations+=", "+locals.join(", ")}for(var alias in this.aliases){if(this.aliases.hasOwnProperty(alias)){varDeclarations+=", "+alias+"="+this.aliases[alias]}}var params=["depth0","helpers","partials","data"];if(this.useDepths){params.push("depths")}var source=this.mergeSource(varDeclarations);if(asObject){params.push(source);return Function.apply(this,params)}else{return"function("+params.join(",")+") {\n "+source+"}"}},mergeSource:function(varDeclarations){var source="",buffer,appendOnly=!this.forceBuffer,appendFirst;for(var i=0,len=this.source.length;i<len;i++){var line=this.source[i];if(line.appendToBuffer){if(buffer){buffer=buffer+"\n + "+line.content}else{buffer=line.content}}else{if(buffer){if(!source){appendFirst=true;source=buffer+";\n "}else{source+="buffer += "+buffer+";\n "}buffer=undefined}source+=line+"\n ";if(!this.environment.isSimple){appendOnly=false}}}if(appendOnly){if(buffer||!source){source+="return "+(buffer||'""')+";\n"}}else{varDeclarations+=", buffer = "+(appendFirst?"":this.initializeBuffer());if(buffer){source+="return buffer + "+buffer+";\n"}else{source+="return buffer;\n"}}if(varDeclarations){source="var "+varDeclarations.substring(2)+(appendFirst?"":";\n ")+source}return source},blockValue:function(name){this.aliases.blockHelperMissing="helpers.blockHelperMissing";var params=[this.contextName(0)];this.setupParams(name,0,params);var blockName=this.popStack();params.splice(1,0,blockName);this.push("blockHelperMissing.call("+params.join(", ")+")")},ambiguousBlockValue:function(){this.aliases.blockHelperMissing="helpers.blockHelperMissing";var params=[this.contextName(0)];this.setupParams("",0,params,true);this.flushInline();var current=this.topStack();params.splice(1,0,current);this.pushSource("if (!"+this.lastHelper+") { "+current+" = blockHelperMissing.call("+params.join(", ")+"); }")},appendContent:function(content){if(this.pendingContent){content=this.pendingContent+content}this.pendingContent=content},append:function(){this.flushInline();var local=this.popStack();this.pushSource("if ("+local+" != null) { "+this.appendToBuffer(local)+" }");if(this.environment.isSimple){this.pushSource("else { "+this.appendToBuffer("''")+" }")}},appendEscaped:function(){this.aliases.escapeExpression="this.escapeExpression";this.pushSource(this.appendToBuffer("escapeExpression("+this.popStack()+")"))},getContext:function(depth){this.lastContext=depth},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(parts,falsy,scoped){var i=0,len=parts.length;if(!scoped&&this.options.compat&&!this.lastContext){this.push(this.depthedLookup(parts[i++]))}else{this.pushContext()}for(;i<len;i++){this.replaceStack(function(current){var lookup=this.nameLookup(current,parts[i],"context");if(!falsy){return" != null ? "+lookup+" : "+current}else{return" && "+lookup}})}},lookupData:function(depth,parts){if(!depth){this.pushStackLiteral("data")}else{this.pushStackLiteral("this.data(data, "+depth+")")}var len=parts.length;for(var i=0;i<len;i++){this.replaceStack(function(current){return" && "+this.nameLookup(current,parts[i],"data")})}},resolvePossibleLambda:function(){this.aliases.lambda="this.lambda";this.push("lambda("+this.popStack()+", "+this.contextName(0)+")")},pushStringParam:function(string,type){this.pushContext();this.pushString(type);if(type!=="sexpr"){if(typeof string==="string"){this.pushString(string)}else{this.pushStackLiteral(string)}}},emptyHash:function(){this.pushStackLiteral("{}");if(this.trackIds){this.push("{}")}if(this.stringParams){this.push("{}");this.push("{}")}},pushHash:function(){if(this.hash){this.hashes.push(this.hash)}this.hash={values:[],types:[],contexts:[],ids:[]}},popHash:function(){var hash=this.hash;this.hash=this.hashes.pop();if(this.trackIds){this.push("{"+hash.ids.join(",")+"}")}if(this.stringParams){this.push("{"+hash.contexts.join(",")+"}");this.push("{"+hash.types.join(",")+"}")}this.push("{\n "+hash.values.join(",\n ")+"\n }")},pushString:function(string){this.pushStackLiteral(this.quotedString(string))},push:function(expr){this.inlineStack.push(expr);return expr},pushLiteral:function(value){this.pushStackLiteral(value)},pushProgram:function(guid){if(guid!=null){this.pushStackLiteral(this.programExpression(guid))}else{this.pushStackLiteral(null)}},invokeHelper:function(paramSize,name,isSimple){this.aliases.helperMissing="helpers.helperMissing";var nonHelper=this.popStack();var helper=this.setupHelper(paramSize,name);var lookup=(isSimple?helper.name+" || ":"")+nonHelper+" || helperMissing";this.push("(("+lookup+").call("+helper.callParams+"))")},invokeKnownHelper:function(paramSize,name){var helper=this.setupHelper(paramSize,name);this.push(helper.name+".call("+helper.callParams+")")},invokeAmbiguous:function(name,helperCall){this.aliases.functionType='"function"';this.aliases.helperMissing="helpers.helperMissing";this.useRegister("helper");var nonHelper=this.popStack();this.emptyHash();var helper=this.setupHelper(0,name,helperCall);var helperName=this.lastHelper=this.nameLookup("helpers",name,"helper");this.push("((helper = (helper = "+helperName+" || "+nonHelper+") != null ? helper : helperMissing"+(helper.paramsInit?"),("+helper.paramsInit:"")+"),"+"(typeof helper === functionType ? helper.call("+helper.callParams+") : helper))")},invokePartial:function(name,indent){var params=[this.nameLookup("partials",name,"partial"),"'"+indent+"'","'"+name+"'",this.popStack(),this.popStack(),"helpers","partials"];if(this.options.data){params.push("data")}else if(this.options.compat){params.push("undefined")}if(this.options.compat){params.push("depths")}this.push("this.invokePartial("+params.join(", ")+")")},assignToHash:function(key){var value=this.popStack(),context,type,id;if(this.trackIds){id=this.popStack()}if(this.stringParams){type=this.popStack();context=this.popStack()}var hash=this.hash;if(context){hash.contexts.push("'"+key+"': "+context)}if(type){hash.types.push("'"+key+"': "+type)}if(id){hash.ids.push("'"+key+"': "+id)}hash.values.push("'"+key+"': ("+value+")")},pushId:function(type,name){if(type==="ID"||type==="DATA"){this.pushString(name)}else if(type==="sexpr"){this.pushStackLiteral("true")}else{this.pushStackLiteral("null")}},compiler:JavaScriptCompiler,compileChildren:function(environment,options){var children=environment.children,child,compiler;for(var i=0,l=children.length;i<l;i++){child=children[i];compiler=new this.compiler;var index=this.matchExistingProgram(child);if(index==null){this.context.programs.push("");index=this.context.programs.length;child.index=index;child.name="program"+index;this.context.programs[index]=compiler.compile(child,options,this.context,!this.precompile);this.context.environments[index]=child;this.useDepths=this.useDepths||compiler.useDepths | |
}else{child.index=index;child.name="program"+index}}},matchExistingProgram:function(child){for(var i=0,len=this.context.environments.length;i<len;i++){var environment=this.context.environments[i];if(environment&&environment.equals(child)){return i}}},programExpression:function(guid){var child=this.environment.children[guid],depths=child.depths.list,useDepths=this.useDepths,depth;var programParams=[child.index,"data"];if(useDepths){programParams.push("depths")}return"this.program("+programParams.join(", ")+")"},useRegister:function(name){if(!this.registers[name]){this.registers[name]=true;this.registers.list.push(name)}},pushStackLiteral:function(item){return this.push(new Literal(item))},pushSource:function(source){if(this.pendingContent){this.source.push(this.appendToBuffer(this.quotedString(this.pendingContent)));this.pendingContent=undefined}if(source){this.source.push(source)}},pushStack:function(item){this.flushInline();var stack=this.incrStack();this.pushSource(stack+" = "+item+";");this.compileStack.push(stack);return stack},replaceStack:function(callback){var prefix="",inline=this.isInline(),stack,createdStack,usedLiteral;if(!this.isInline()){throw new Exception("replaceStack on non-inline")}var top=this.popStack(true);if(top instanceof Literal){prefix=stack=top.value;usedLiteral=true}else{createdStack=!this.stackSlot;var name=!createdStack?this.topStackName():this.incrStack();prefix="("+this.push(name)+" = "+top+")";stack=this.topStack()}var item=callback.call(this,stack);if(!usedLiteral){this.popStack()}if(createdStack){this.stackSlot--}this.push("("+prefix+item+")")},incrStack:function(){this.stackSlot++;if(this.stackSlot>this.stackVars.length){this.stackVars.push("stack"+this.stackSlot)}return this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var inlineStack=this.inlineStack;if(inlineStack.length){this.inlineStack=[];for(var i=0,len=inlineStack.length;i<len;i++){var entry=inlineStack[i];if(entry instanceof Literal){this.compileStack.push(entry)}else{this.pushStack(entry)}}}},isInline:function(){return this.inlineStack.length},popStack:function(wrapped){var inline=this.isInline(),item=(inline?this.inlineStack:this.compileStack).pop();if(!wrapped&&item instanceof Literal){return item.value}else{if(!inline){if(!this.stackSlot){throw new Exception("Invalid stack pop")}this.stackSlot--}return item}},topStack:function(){var stack=this.isInline()?this.inlineStack:this.compileStack,item=stack[stack.length-1];if(item instanceof Literal){return item.value}else{return item}},contextName:function(context){if(this.useDepths&&context){return"depths["+context+"]"}else{return"depth"+context}},quotedString:function(str){return'"'+str.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029")+'"'},objectLiteral:function(obj){var pairs=[];for(var key in obj){if(obj.hasOwnProperty(key)){pairs.push(this.quotedString(key)+":"+obj[key])}}return"{"+pairs.join(",")+"}"},setupHelper:function(paramSize,name,blockHelper){var params=[],paramsInit=this.setupParams(name,paramSize,params,blockHelper);var foundHelper=this.nameLookup("helpers",name,"helper");return{params:params,paramsInit:paramsInit,name:foundHelper,callParams:[this.contextName(0)].concat(params).join(", ")}},setupOptions:function(helper,paramSize,params){var options={},contexts=[],types=[],ids=[],param,inverse,program;options.name=this.quotedString(helper);options.hash=this.popStack();if(this.trackIds){options.hashIds=this.popStack()}if(this.stringParams){options.hashTypes=this.popStack();options.hashContexts=this.popStack()}inverse=this.popStack();program=this.popStack();if(program||inverse){if(!program){program="this.noop"}if(!inverse){inverse="this.noop"}options.fn=program;options.inverse=inverse}var i=paramSize;while(i--){param=this.popStack();params[i]=param;if(this.trackIds){ids[i]=this.popStack()}if(this.stringParams){types[i]=this.popStack();contexts[i]=this.popStack()}}if(this.trackIds){options.ids="["+ids.join(",")+"]"}if(this.stringParams){options.types="["+types.join(",")+"]";options.contexts="["+contexts.join(",")+"]"}if(this.options.data){options.data="data"}return options},setupParams:function(helperName,paramSize,params,useRegister){var options=this.objectLiteral(this.setupOptions(helperName,paramSize,params));if(useRegister){this.useRegister("options");params.push("options");return"options="+options}else{params.push(options);return""}}};var reservedWords=("break else new var"+" case finally return void"+" catch for switch while"+" continue function this with"+" default if throw"+" delete in try"+" do instanceof typeof"+" abstract enum int short"+" boolean export interface static"+" byte extends long super"+" char final native synchronized"+" class float package throws"+" const goto private transient"+" debugger implements protected volatile"+" double import public let yield").split(" ");var compilerWords=JavaScriptCompiler.RESERVED_WORDS={};for(var i=0,l=reservedWords.length;i<l;i++){compilerWords[reservedWords[i]]=true}JavaScriptCompiler.isValidJavaScriptVariableName=function(name){return!JavaScriptCompiler.RESERVED_WORDS[name]&&/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(name)};exports["default"]=JavaScriptCompiler},{"../base":4,"../exception":13}],10:[function(require,module,exports){"use strict";var handlebars=function(){var parser={trace:function trace(){},yy:{},symbols_:{error:2,root:3,program:4,EOF:5,program_repetition0:6,statement:7,mustache:8,block:9,rawBlock:10,partial:11,CONTENT:12,COMMENT:13,openRawBlock:14,END_RAW_BLOCK:15,OPEN_RAW_BLOCK:16,sexpr:17,CLOSE_RAW_BLOCK:18,openBlock:19,block_option0:20,closeBlock:21,openInverse:22,block_option1:23,OPEN_BLOCK:24,CLOSE:25,OPEN_INVERSE:26,inverseAndProgram:27,INVERSE:28,OPEN_ENDBLOCK:29,path:30,OPEN:31,OPEN_UNESCAPED:32,CLOSE_UNESCAPED:33,OPEN_PARTIAL:34,partialName:35,param:36,partial_option0:37,partial_option1:38,sexpr_repetition0:39,sexpr_option0:40,dataName:41,STRING:42,NUMBER:43,BOOLEAN:44,OPEN_SEXPR:45,CLOSE_SEXPR:46,hash:47,hash_repetition_plus0:48,hashSegment:49,ID:50,EQUALS:51,DATA:52,pathSegments:53,SEP:54,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",12:"CONTENT",13:"COMMENT",15:"END_RAW_BLOCK",16:"OPEN_RAW_BLOCK",18:"CLOSE_RAW_BLOCK",24:"OPEN_BLOCK",25:"CLOSE",26:"OPEN_INVERSE",28:"INVERSE",29:"OPEN_ENDBLOCK",31:"OPEN",32:"OPEN_UNESCAPED",33:"CLOSE_UNESCAPED",34:"OPEN_PARTIAL",42:"STRING",43:"NUMBER",44:"BOOLEAN",45:"OPEN_SEXPR",46:"CLOSE_SEXPR",50:"ID",51:"EQUALS",52:"DATA",54:"SEP"},productions_:[0,[3,2],[4,1],[7,1],[7,1],[7,1],[7,1],[7,1],[7,1],[10,3],[14,3],[9,4],[9,4],[19,3],[22,3],[27,2],[21,3],[8,3],[8,3],[11,5],[11,4],[17,3],[17,1],[36,1],[36,1],[36,1],[36,1],[36,1],[36,3],[47,1],[49,3],[35,1],[35,1],[35,1],[41,2],[30,1],[53,3],[53,1],[6,0],[6,2],[20,0],[20,1],[23,0],[23,1],[37,0],[37,1],[38,0],[38,1],[39,0],[39,2],[40,0],[40,1],[48,1],[48,2]],performAction:function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$){var $0=$$.length-1;switch(yystate){case 1:yy.prepareProgram($$[$0-1].statements,true);return $$[$0-1];break;case 2:this.$=new yy.ProgramNode(yy.prepareProgram($$[$0]),{},this._$);break;case 3:this.$=$$[$0];break;case 4:this.$=$$[$0];break;case 5:this.$=$$[$0];break;case 6:this.$=$$[$0];break;case 7:this.$=new yy.ContentNode($$[$0],this._$);break;case 8:this.$=new yy.CommentNode($$[$0],this._$);break;case 9:this.$=new yy.RawBlockNode($$[$0-2],$$[$0-1],$$[$0],this._$);break;case 10:this.$=new yy.MustacheNode($$[$0-1],null,"","",this._$);break;case 11:this.$=yy.prepareBlock($$[$0-3],$$[$0-2],$$[$0-1],$$[$0],false,this._$);break;case 12:this.$=yy.prepareBlock($$[$0-3],$$[$0-2],$$[$0-1],$$[$0],true,this._$);break;case 13:this.$=new yy.MustacheNode($$[$0-1],null,$$[$0-2],yy.stripFlags($$[$0-2],$$[$0]),this._$);break;case 14:this.$=new yy.MustacheNode($$[$0-1],null,$$[$0-2],yy.stripFlags($$[$0-2],$$[$0]),this._$);break;case 15:this.$={strip:yy.stripFlags($$[$0-1],$$[$0-1]),program:$$[$0]};break;case 16:this.$={path:$$[$0-1],strip:yy.stripFlags($$[$0-2],$$[$0])};break;case 17:this.$=new yy.MustacheNode($$[$0-1],null,$$[$0-2],yy.stripFlags($$[$0-2],$$[$0]),this._$);break;case 18:this.$=new yy.MustacheNode($$[$0-1],null,$$[$0-2],yy.stripFlags($$[$0-2],$$[$0]),this._$);break;case 19:this.$=new yy.PartialNode($$[$0-3],$$[$0-2],$$[$0-1],yy.stripFlags($$[$0-4],$$[$0]),this._$);break;case 20:this.$=new yy.PartialNode($$[$0-2],undefined,$$[$0-1],yy.stripFlags($$[$0-3],$$[$0]),this._$);break;case 21:this.$=new yy.SexprNode([$$[$0-2]].concat($$[$0-1]),$$[$0],this._$);break;case 22:this.$=new yy.SexprNode([$$[$0]],null,this._$);break;case 23:this.$=$$[$0];break;case 24:this.$=new yy.StringNode($$[$0],this._$);break;case 25:this.$=new yy.NumberNode($$[$0],this._$);break;case 26:this.$=new yy.BooleanNode($$[$0],this._$);break;case 27:this.$=$$[$0];break;case 28:$$[$0-1].isHelper=true;this.$=$$[$0-1];break;case 29:this.$=new yy.HashNode($$[$0],this._$);break;case 30:this.$=[$$[$0-2],$$[$0]];break;case 31:this.$=new yy.PartialNameNode($$[$0],this._$);break;case 32:this.$=new yy.PartialNameNode(new yy.StringNode($$[$0],this._$),this._$);break;case 33:this.$=new yy.PartialNameNode(new yy.NumberNode($$[$0],this._$));break;case 34:this.$=new yy.DataNode($$[$0],this._$);break;case 35:this.$=new yy.IdNode($$[$0],this._$);break;case 36:$$[$0-2].push({part:$$[$0],separator:$$[$0-1]});this.$=$$[$0-2];break;case 37:this.$=[{part:$$[$0]}];break;case 38:this.$=[];break;case 39:$$[$0-1].push($$[$0]);break;case 48:this.$=[];break;case 49:$$[$0-1].push($$[$0]);break;case 52:this.$=[$$[$0]];break;case 53:$$[$0-1].push($$[$0]);break}},table:[{3:1,4:2,5:[2,38],6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],31:[2,38],32:[2,38],34:[2,38]},{1:[3]},{5:[1,4]},{5:[2,2],7:5,8:6,9:7,10:8,11:9,12:[1,10],13:[1,11],14:16,16:[1,20],19:14,22:15,24:[1,18],26:[1,19],28:[2,2],29:[2,2],31:[1,12],32:[1,13],34:[1,17]},{1:[2,1]},{5:[2,39],12:[2,39],13:[2,39],16:[2,39],24:[2,39],26:[2,39],28:[2,39],29:[2,39],31:[2,39],32:[2,39],34:[2,39]},{5:[2,3],12:[2,3],13:[2,3],16:[2,3],24:[2,3],26:[2,3],28:[2,3],29:[2,3],31:[2,3],32:[2,3],34:[2,3]},{5:[2,4],12:[2,4],13:[2,4],16:[2,4],24:[2,4],26:[2,4],28:[2,4],29:[2,4],31:[2,4],32:[2,4],34:[2,4]},{5:[2,5],12:[2,5],13:[2,5],16:[2,5],24:[2,5],26:[2,5],28:[2,5],29:[2,5],31:[2,5],32:[2,5],34:[2,5]},{5:[2,6],12:[2,6],13:[2,6],16:[2,6],24:[2,6],26:[2,6],28:[2,6],29:[2,6],31:[2,6],32:[2,6],34:[2,6]},{5:[2,7],12:[2,7],13:[2,7],16:[2,7],24:[2,7],26:[2,7],28:[2,7],29:[2,7],31:[2,7],32:[2,7],34:[2,7]},{5:[2,8],12:[2,8],13:[2,8],16:[2,8],24:[2,8],26:[2,8],28:[2,8],29:[2,8],31:[2,8],32:[2,8],34:[2,8]},{17:21,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:27,30:22,41:23,50:[1,26],52:[1,25],53:24},{4:28,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{4:29,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],28:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{12:[1,30]},{30:32,35:31,42:[1,33],43:[1,34],50:[1,26],53:24},{17:35,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:36,30:22,41:23,50:[1,26],52:[1,25],53:24},{17:37,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[1,38]},{18:[2,48],25:[2,48],33:[2,48],39:39,42:[2,48],43:[2,48],44:[2,48],45:[2,48],46:[2,48],50:[2,48],52:[2,48]},{18:[2,22],25:[2,22],33:[2,22],46:[2,22]},{18:[2,35],25:[2,35],33:[2,35],42:[2,35],43:[2,35],44:[2,35],45:[2,35],46:[2,35],50:[2,35],52:[2,35],54:[1,40]},{30:41,50:[1,26],53:24},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],52:[2,37],54:[2,37]},{33:[1,42]},{20:43,27:44,28:[1,45],29:[2,40]},{23:46,27:47,28:[1,45],29:[2,42]},{15:[1,48]},{25:[2,46],30:51,36:49,38:50,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],47:57,48:58,49:60,50:[1,59],52:[1,25],53:24},{25:[2,31],42:[2,31],43:[2,31],44:[2,31],45:[2,31],50:[2,31],52:[2,31]},{25:[2,32],42:[2,32],43:[2,32],44:[2,32],45:[2,32],50:[2,32],52:[2,32]},{25:[2,33],42:[2,33],43:[2,33],44:[2,33],45:[2,33],50:[2,33],52:[2,33]},{25:[1,61]},{25:[1,62]},{18:[1,63]},{5:[2,17],12:[2,17],13:[2,17],16:[2,17],24:[2,17],26:[2,17],28:[2,17],29:[2,17],31:[2,17],32:[2,17],34:[2,17]},{18:[2,50],25:[2,50],30:51,33:[2,50],36:65,40:64,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],46:[2,50],47:66,48:58,49:60,50:[1,59],52:[1,25],53:24},{50:[1,67]},{18:[2,34],25:[2,34],33:[2,34],42:[2,34],43:[2,34],44:[2,34],45:[2,34],46:[2,34],50:[2,34],52:[2,34]},{5:[2,18],12:[2,18],13:[2,18],16:[2,18],24:[2,18],26:[2,18],28:[2,18],29:[2,18],31:[2,18],32:[2,18],34:[2,18]},{21:68,29:[1,69]},{29:[2,41]},{4:70,6:3,12:[2,38],13:[2,38],16:[2,38],24:[2,38],26:[2,38],29:[2,38],31:[2,38],32:[2,38],34:[2,38]},{21:71,29:[1,69]},{29:[2,43]},{5:[2,9],12:[2,9],13:[2,9],16:[2,9],24:[2,9],26:[2,9],28:[2,9],29:[2,9],31:[2,9],32:[2,9],34:[2,9]},{25:[2,44],37:72,47:73,48:58,49:60,50:[1,74]},{25:[1,75]},{18:[2,23],25:[2,23],33:[2,23],42:[2,23],43:[2,23],44:[2,23],45:[2,23],46:[2,23],50:[2,23],52:[2,23]},{18:[2,24],25:[2,24],33:[2,24],42:[2,24],43:[2,24],44:[2,24],45:[2,24],46:[2,24],50:[2,24],52:[2,24]},{18:[2,25],25:[2,25],33:[2,25],42:[2,25],43:[2,25],44:[2,25],45:[2,25],46:[2,25],50:[2,25],52:[2,25]},{18:[2,26],25:[2,26],33:[2,26],42:[2,26],43:[2,26],44:[2,26],45:[2,26],46:[2,26],50:[2,26],52:[2,26]},{18:[2,27],25:[2,27],33:[2,27],42:[2,27],43:[2,27],44:[2,27],45:[2,27],46:[2,27],50:[2,27],52:[2,27]},{17:76,30:22,41:23,50:[1,26],52:[1,25],53:24},{25:[2,47]},{18:[2,29],25:[2,29],33:[2,29],46:[2,29],49:77,50:[1,74]},{18:[2,37],25:[2,37],33:[2,37],42:[2,37],43:[2,37],44:[2,37],45:[2,37],46:[2,37],50:[2,37],51:[1,78],52:[2,37],54:[2,37]},{18:[2,52],25:[2,52],33:[2,52],46:[2,52],50:[2,52]},{12:[2,13],13:[2,13],16:[2,13],24:[2,13],26:[2,13],28:[2,13],29:[2,13],31:[2,13],32:[2,13],34:[2,13]},{12:[2,14],13:[2,14],16:[2,14],24:[2,14],26:[2,14],28:[2,14],29:[2,14],31:[2,14],32:[2,14],34:[2,14]},{12:[2,10]},{18:[2,21],25:[2,21],33:[2,21],46:[2,21]},{18:[2,49],25:[2,49],33:[2,49],42:[2,49],43:[2,49],44:[2,49],45:[2,49],46:[2,49],50:[2,49],52:[2,49]},{18:[2,51],25:[2,51],33:[2,51],46:[2,51]},{18:[2,36],25:[2,36],33:[2,36],42:[2,36],43:[2,36],44:[2,36],45:[2,36],46:[2,36],50:[2,36],52:[2,36],54:[2,36]},{5:[2,11],12:[2,11],13:[2,11],16:[2,11],24:[2,11],26:[2,11],28:[2,11],29:[2,11],31:[2,11],32:[2,11],34:[2,11]},{30:79,50:[1,26],53:24},{29:[2,15]},{5:[2,12],12:[2,12],13:[2,12],16:[2,12],24:[2,12],26:[2,12],28:[2,12],29:[2,12],31:[2,12],32:[2,12],34:[2,12]},{25:[1,80]},{25:[2,45]},{51:[1,78]},{5:[2,20],12:[2,20],13:[2,20],16:[2,20],24:[2,20],26:[2,20],28:[2,20],29:[2,20],31:[2,20],32:[2,20],34:[2,20]},{46:[1,81]},{18:[2,53],25:[2,53],33:[2,53],46:[2,53],50:[2,53]},{30:51,36:82,41:55,42:[1,52],43:[1,53],44:[1,54],45:[1,56],50:[1,26],52:[1,25],53:24},{25:[1,83]},{5:[2,19],12:[2,19],13:[2,19],16:[2,19],24:[2,19],26:[2,19],28:[2,19],29:[2,19],31:[2,19],32:[2,19],34:[2,19]},{18:[2,28],25:[2,28],33:[2,28],42:[2,28],43:[2,28],44:[2,28],45:[2,28],46:[2,28],50:[2,28],52:[2,28]},{18:[2,30],25:[2,30],33:[2,30],46:[2,30],50:[2,30]},{5:[2,16],12:[2,16],13:[2,16],16:[2,16],24:[2,16],26:[2,16],28:[2,16],29:[2,16],31:[2,16],32:[2,16],34:[2,16]}],defaultActions:{4:[2,1],44:[2,41],47:[2,43],57:[2,47],63:[2,10],70:[2,15],73:[2,45]},parseError:function parseError(str,hash){throw new Error(str)},parse:function parse(input){var self=this,stack=[0],vstack=[null],lstack=[],table=this.table,yytext="",yylineno=0,yyleng=0,recovering=0,TERROR=2,EOF=1;this.lexer.setInput(input);this.lexer.yy=this.yy;this.yy.lexer=this.lexer;this.yy.parser=this;if(typeof this.lexer.yylloc=="undefined")this.lexer.yylloc={};var yyloc=this.lexer.yylloc;lstack.push(yyloc);var ranges=this.lexer.options&&this.lexer.options.ranges;if(typeof this.yy.parseError==="function")this.parseError=this.yy.parseError;function popStack(n){stack.length=stack.length-2*n;vstack.length=vstack.length-n;lstack.length=lstack.length-n}function lex(){var token;token=self.lexer.lex()||1;if(typeof token!=="number"){token=self.symbols_[token]||token}return token}var symbol,preErrorSymbol,state,action,a,r,yyval={},p,len,newState,expected;while(true){state=stack[stack.length-1];if(this.defaultActions[state]){action=this.defaultActions[state]}else{if(symbol===null||typeof symbol=="undefined"){symbol=lex()}action=table[state]&&table[state][symbol]}if(typeof action==="undefined"||!action.length||!action[0]){var errStr="";if(!recovering){expected=[];for(p in table[state])if(this.terminals_[p]&&p>2){expected.push("'"+this.terminals_[p]+"'")}if(this.lexer.showPosition){errStr="Parse error on line "+(yylineno+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+expected.join(", ")+", got '"+(this.terminals_[symbol]||symbol)+"'"}else{errStr="Parse error on line "+(yylineno+1)+": Unexpected "+(symbol==1?"end of input":"'"+(this.terminals_[symbol]||symbol)+"'")}this.parseError(errStr,{text:this.lexer.match,token:this.terminals_[symbol]||symbol,line:this.lexer.yylineno,loc:yyloc,expected:expected})}}if(action[0]instanceof Array&&action.length>1){throw new Error("Parse Error: multiple actions possible at state: "+state+", token: "+symbol)}switch(action[0]){case 1:stack.push(symbol);vstack.push(this.lexer.yytext);lstack.push(this.lexer.yylloc);stack.push(action[1]);symbol=null;if(!preErrorSymbol){yyleng=this.lexer.yyleng;yytext=this.lexer.yytext;yylineno=this.lexer.yylineno;yyloc=this.lexer.yylloc;if(recovering>0)recovering--}else{symbol=preErrorSymbol;preErrorSymbol=null}break;case 2:len=this.productions_[action[1]][1];yyval.$=vstack[vstack.length-len];yyval._$={first_line:lstack[lstack.length-(len||1)].first_line,last_line:lstack[lstack.length-1].last_line,first_column:lstack[lstack.length-(len||1)].first_column,last_column:lstack[lstack.length-1].last_column};if(ranges){yyval._$.range=[lstack[lstack.length-(len||1)].range[0],lstack[lstack.length-1].range[1]]}r=this.performAction.call(yyval,yytext,yyleng,yylineno,this.yy,action[1],vstack,lstack);if(typeof r!=="undefined"){return r}if(len){stack=stack.slice(0,-1*len*2);vstack=vstack.slice(0,-1*len);lstack=lstack.slice(0,-1*len)}stack.push(this.productions_[action[1]][0]);vstack.push(yyval.$);lstack.push(yyval._$);newState=table[stack[stack.length-2]][stack[stack.length-1]];stack.push(newState);break;case 3:return true}}return true}};var lexer=function(){var lexer={EOF:1,parseError:function parseError(str,hash){if(this.yy.parser){this.yy.parser.parseError(str,hash)}else{throw new Error(str)}},setInput:function(input){this._input=input;this._more=this._less=this.done=false;this.yylineno=this.yyleng=0;this.yytext=this.matched=this.match="";this.conditionStack=["INITIAL"];this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0};if(this.options.ranges)this.yylloc.range=[0,0];this.offset=0;return this},input:function(){var ch=this._input[0];this.yytext+=ch;this.yyleng++;this.offset++;this.match+=ch;this.matched+=ch;var lines=ch.match(/(?:\r\n?|\n).*/g);if(lines){this.yylineno++;this.yylloc.last_line++}else{this.yylloc.last_column++}if(this.options.ranges)this.yylloc.range[1]++;this._input=this._input.slice(1);return ch},unput:function(ch){var len=ch.length;var lines=ch.split(/(?:\r\n?|\n)/g);this._input=ch+this._input;this.yytext=this.yytext.substr(0,this.yytext.length-len-1);this.offset-=len;var oldLines=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1);this.matched=this.matched.substr(0,this.matched.length-1);if(lines.length-1)this.yylineno-=lines.length-1;var r=this.yylloc.range;this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:lines?(lines.length===oldLines.length?this.yylloc.first_column:0)+oldLines[oldLines.length-lines.length].length-lines[0].length:this.yylloc.first_column-len};if(this.options.ranges){this.yylloc.range=[r[0],r[0]+this.yyleng-len]}return this},more:function(){this._more=true;return this},less:function(n){this.unput(this.match.slice(n))},pastInput:function(){var past=this.matched.substr(0,this.matched.length-this.match.length);return(past.length>20?"...":"")+past.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var next=this.match;if(next.length<20){next+=this._input.substr(0,20-next.length)}return(next.substr(0,20)+(next.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var pre=this.pastInput();var c=new Array(pre.length+1).join("-");return pre+this.upcomingInput()+"\n"+c+"^"},next:function(){if(this.done){return this.EOF}if(!this._input)this.done=true;var token,match,tempMatch,index,col,lines;if(!this._more){this.yytext="";this.match=""}var rules=this._currentRules();for(var i=0;i<rules.length;i++){tempMatch=this._input.match(this.rules[rules[i]]);if(tempMatch&&(!match||tempMatch[0].length>match[0].length)){match=tempMatch;index=i;if(!this.options.flex)break}}if(match){lines=match[0].match(/(?:\r\n?|\n).*/g);if(lines)this.yylineno+=lines.length;this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:lines?lines[lines.length-1].length-lines[lines.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+match[0].length};this.yytext+=match[0];this.match+=match[0];this.matches=match;this.yyleng=this.yytext.length;if(this.options.ranges){this.yylloc.range=[this.offset,this.offset+=this.yyleng]}this._more=false;this._input=this._input.slice(match[0].length);this.matched+=match[0];token=this.performAction.call(this,this.yy,this,rules[index],this.conditionStack[this.conditionStack.length-1]);if(this.done&&this._input)this.done=false;if(token)return token;else return}if(this._input===""){return this.EOF}else{return this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})}},lex:function lex(){var r=this.next();if(typeof r!=="undefined"){return r}else{return this.lex()}},begin:function begin(condition){this.conditionStack.push(condition)},popState:function popState(){return this.conditionStack.pop()},_currentRules:function _currentRules(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function begin(condition){this.begin(condition)}};lexer.options={};lexer.performAction=function anonymous(yy,yy_,$avoiding_name_collisions,YY_START){function strip(start,end){return yy_.yytext=yy_.yytext.substr(start,yy_.yyleng-end)}var YYSTATE=YY_START;switch($avoiding_name_collisions){case 0:if(yy_.yytext.slice(-2)==="\\\\"){strip(0,1);this.begin("mu")}else if(yy_.yytext.slice(-1)==="\\"){strip(0,1);this.begin("emu")}else{this.begin("mu")}if(yy_.yytext)return 12;break;case 1:return 12;break;case 2:this.popState();return 12;break;case 3:yy_.yytext=yy_.yytext.substr(5,yy_.yyleng-9);this.popState();return 15;break;case 4:return 12;break;case 5:strip(0,4);this.popState();return 13;break;case 6:return 45;break;case 7:return 46;break;case 8:return 16;break;case 9:this.popState();this.begin("raw");return 18;break;case 10:return 34;break;case 11:return 24;break;case 12:return 29;break;case 13:this.popState();return 28;break;case 14:this.popState();return 28;break;case 15:return 26;break;case 16:return 26;break;case 17:return 32;break;case 18:return 31;break;case 19:this.popState();this.begin("com");break;case 20:strip(3,5);this.popState();return 13;break;case 21:return 31;break;case 22:return 51;break;case 23:return 50;break;case 24:return 50;break;case 25:return 54;break;case 26:break;case 27:this.popState();return 33;break;case 28:this.popState();return 25;break;case 29:yy_.yytext=strip(1,2).replace(/\\"/g,'"');return 42;break;case 30:yy_.yytext=strip(1,2).replace(/\\'/g,"'");return 42;break;case 31:return 52;break;case 32:return 44;break;case 33:return 44;break;case 34:return 43;break;case 35:return 50;break;case 36:yy_.yytext=strip(1,2);return 50;break;case 37:return"INVALID";break;case 38:return 5;break}};lexer.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{\/)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];lexer.conditions={mu:{rules:[6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],inclusive:false},emu:{rules:[2],inclusive:false},com:{rules:[5],inclusive:false},raw:{rules:[3,4],inclusive:false},INITIAL:{rules:[0,1,38],inclusive:true}};return lexer}();parser.lexer=lexer;function Parser(){this.yy={}}Parser.prototype=parser;parser.Parser=Parser;return new Parser}();exports["default"]=handlebars},{}],11:[function(require,module,exports){"use strict";var Visitor=require("./visitor")["default"];function print(ast){return(new PrintVisitor).accept(ast)}exports.print=print;function PrintVisitor(){this.padding=0}exports.PrintVisitor=PrintVisitor;PrintVisitor.prototype=new Visitor;PrintVisitor.prototype.pad=function(string){var out="";for(var i=0,l=this.padding;i<l;i++){out=out+" "}out=out+string+"\n";return out};PrintVisitor.prototype.program=function(program){var out="",statements=program.statements,i,l;for(i=0,l=statements.length;i<l;i++){out=out+this.accept(statements[i])}this.padding--;return out};PrintVisitor.prototype.block=function(block){var out="";out=out+this.pad("BLOCK:");this.padding++;out=out+this.accept(block.mustache);if(block.program){out=out+this.pad("PROGRAM:");this.padding++;out=out+this.accept(block.program);this.padding--}if(block.inverse){if(block.program){this.padding++}out=out+this.pad("{{^}}");this.padding++;out=out+this.accept(block.inverse);this.padding--;if(block.program){this.padding--}}this.padding--;return out};PrintVisitor.prototype.sexpr=function(sexpr){var params=sexpr.params,paramStrings=[],hash;for(var i=0,l=params.length;i<l;i++){paramStrings.push(this.accept(params[i]))}params="["+paramStrings.join(", ")+"]";hash=sexpr.hash?" "+this.accept(sexpr.hash):"";return this.accept(sexpr.id)+" "+params+hash};PrintVisitor.prototype.mustache=function(mustache){return this.pad("{{ "+this.accept(mustache.sexpr)+" }}")};PrintVisitor.prototype.partial=function(partial){var content=this.accept(partial.partialName);if(partial.context){content+=" "+this.accept(partial.context)}if(partial.hash){content+=" "+this.accept(partial.hash)}return this.pad("{{> "+content+" }}")};PrintVisitor.prototype.hash=function(hash){var pairs=hash.pairs;var joinedPairs=[],left,right;for(var i=0,l=pairs.length;i<l;i++){left=pairs[i][0];right=this.accept(pairs[i][1]);joinedPairs.push(left+"="+right)}return"HASH{"+joinedPairs.join(", ")+"}"};PrintVisitor.prototype.STRING=function(string){return'"'+string.string+'"'};PrintVisitor.prototype.NUMBER=function(number){return"NUMBER{"+number.number+"}"};PrintVisitor.prototype.BOOLEAN=function(bool){return"BOOLEAN{"+bool.bool+"}"};PrintVisitor.prototype.ID=function(id){var path=id.parts.join("/");if(id.parts.length>1){return"PATH:"+path}else{return"ID:"+path}};PrintVisitor.prototype.PARTIAL_NAME=function(partialName){return"PARTIAL:"+partialName.name};PrintVisitor.prototype.DATA=function(data){return"@"+this.accept(data.id)};PrintVisitor.prototype.content=function(content){return this.pad("CONTENT[ '"+content.string+"' ]")};PrintVisitor.prototype.comment=function(comment){return this.pad("{{! '"+comment.comment+"' }}")}},{"./visitor":12}],12:[function(require,module,exports){"use strict";function Visitor(){}Visitor.prototype={constructor:Visitor,accept:function(object){return this[object.type](object)}};exports["default"]=Visitor},{}],13:[function(require,module,exports){"use strict";var errorProps=["description","fileName","lineNumber","message","name","number","stack"];function Exception(message,node){var line;if(node&&node.firstLine){line=node.firstLine;message+=" - "+line+":"+node.firstColumn}var tmp=Error.prototype.constructor.call(this,message);for(var idx=0;idx<errorProps.length;idx++){this[errorProps[idx]]=tmp[errorProps[idx]]}if(line){this.lineNumber=line;this.column=node.firstColumn}}Exception.prototype=new Error;exports["default"]=Exception},{}],14:[function(require,module,exports){"use strict";var Utils=require("./utils");var Exception=require("./exception")["default"];var COMPILER_REVISION=require("./base").COMPILER_REVISION;var REVISION_CHANGES=require("./base").REVISION_CHANGES;var createFrame=require("./base").createFrame;function checkRevision(compilerInfo){var compilerRevision=compilerInfo&&compilerInfo[0]||1,currentRevision=COMPILER_REVISION;if(compilerRevision!==currentRevision){if(compilerRevision<currentRevision){var runtimeVersions=REVISION_CHANGES[currentRevision],compilerVersions=REVISION_CHANGES[compilerRevision];throw new Exception("Template was precompiled with an older version of Handlebars than the current runtime. "+"Please update your precompiler to a newer version ("+runtimeVersions+") or downgrade your runtime to an older version ("+compilerVersions+").")}else{throw new Exception("Template was precompiled with a newer version of Handlebars than the current runtime. "+"Please update your runtime to a newer version ("+compilerInfo[1]+").")}}}exports.checkRevision=checkRevision;function template(templateSpec,env){if(!env){throw new Exception("No environment passed to template")}if(!templateSpec||!templateSpec.main){throw new Exception("Unknown template object: "+typeof templateSpec)}env.VM.checkRevision(templateSpec.compiler);var invokePartialWrapper=function(partial,indent,name,context,hash,helpers,partials,data,depths){if(hash){context=Utils.extend({},context,hash)}var result=env.VM.invokePartial.call(this,partial,name,context,helpers,partials,data,depths);if(result==null&&env.compile){var options={helpers:helpers,partials:partials,data:data,depths:depths};partials[name]=env.compile(partial,{data:data!==undefined,compat:templateSpec.compat},env);result=partials[name](context,options)}if(result!=null){if(indent){var lines=result.split("\n");for(var i=0,l=lines.length;i<l;i++){if(!lines[i]&&i+1===l){break}lines[i]=indent+lines[i]}result=lines.join("\n")}return result}else{throw new Exception("The partial "+name+" could not be compiled when running in runtime-only mode")}};var container={lookup:function(depths,name){var len=depths.length;for(var i=0;i<len;i++){if(depths[i]&&depths[i][name]!=null){return depths[i][name]}}},lambda:function(current,context){return typeof current==="function"?current.call(context):current},escapeExpression:Utils.escapeExpression,invokePartial:invokePartialWrapper,fn:function(i){return templateSpec[i]},programs:[],program:function(i,data,depths){var programWrapper=this.programs[i],fn=this.fn(i);if(data||depths){programWrapper=program(this,i,fn,data,depths)}else if(!programWrapper){programWrapper=this.programs[i]=program(this,i,fn)}return programWrapper},data:function(data,depth){while(data&&depth--){data=data._parent}return data},merge:function(param,common){var ret=param||common;if(param&&common&¶m!==common){ret=Utils.extend({},common,param)}return ret},noop:env.VM.noop,compilerInfo:templateSpec.compiler};var ret=function(context,options){options=options||{};var data=options.data;ret._setup(options);if(!options.partial&&templateSpec.useData){data=initData(context,data)}var depths;if(templateSpec.useDepths){depths=options.depths?[context].concat(options.depths):[context]}return templateSpec.main.call(container,context,container.helpers,container.partials,data,depths) | |
};ret.isTop=true;ret._setup=function(options){if(!options.partial){container.helpers=container.merge(options.helpers,env.helpers);if(templateSpec.usePartial){container.partials=container.merge(options.partials,env.partials)}}else{container.helpers=options.helpers;container.partials=options.partials}};ret._child=function(i,data,depths){if(templateSpec.useDepths&&!depths){throw new Exception("must pass parent depths")}return program(container,i,templateSpec[i],data,depths)};return ret}exports.template=template;function program(container,i,fn,data,depths){var prog=function(context,options){options=options||{};return fn.call(container,context,container.helpers,container.partials,options.data||data,depths&&[context].concat(depths))};prog.program=i;prog.depth=depths?depths.length:0;return prog}exports.program=program;function invokePartial(partial,name,context,helpers,partials,data,depths){var options={partial:true,helpers:helpers,partials:partials,data:data,depths:depths};if(partial===undefined){throw new Exception("The partial "+name+" could not be found")}else if(partial instanceof Function){return partial(context,options)}}exports.invokePartial=invokePartial;function noop(){return""}exports.noop=noop;function initData(context,data){if(!data||!("root"in data)){data=data?createFrame(data):{};data.root=context}return data}},{"./base":4,"./exception":13,"./utils":16}],15:[function(require,module,exports){"use strict";function SafeString(string){this.string=string}SafeString.prototype.toString=function(){return""+this.string};exports["default"]=SafeString},{}],16:[function(require,module,exports){"use strict";var SafeString=require("./safe-string")["default"];var escape={"&":"&","<":"<",">":">",'"':""","'":"'","`":"`"};var badChars=/[&<>"'`]/g;var possible=/[&<>"'`]/;function escapeChar(chr){return escape[chr]}function extend(obj){for(var i=1;i<arguments.length;i++){for(var key in arguments[i]){if(Object.prototype.hasOwnProperty.call(arguments[i],key)){obj[key]=arguments[i][key]}}}return obj}exports.extend=extend;var toString=Object.prototype.toString;exports.toString=toString;var isFunction=function(value){return typeof value==="function"};if(isFunction(/x/)){isFunction=function(value){return typeof value==="function"&&toString.call(value)==="[object Function]"}}var isFunction;exports.isFunction=isFunction;var isArray=Array.isArray||function(value){return value&&typeof value==="object"?toString.call(value)==="[object Array]":false};exports.isArray=isArray;function escapeExpression(string){if(string instanceof SafeString){return string.toString()}else if(string==null){return""}else if(!string){return string+""}string=""+string;if(!possible.test(string)){return string}return string.replace(badChars,escapeChar)}exports.escapeExpression=escapeExpression;function isEmpty(value){if(!value&&value!==0){return true}else if(isArray(value)&&value.length===0){return true}else{return false}}exports.isEmpty=isEmpty;function appendContextPath(contextPath,id){return(contextPath?contextPath+".":"")+id}exports.appendContextPath=appendContextPath},{"./safe-string":15}],handlebars:[function(require,module,exports){var handlebars=require("../dist/cjs/handlebars")["default"];handlebars.Visitor=require("../dist/cjs/handlebars/compiler/visitor")["default"];var printer=require("../dist/cjs/handlebars/compiler/printer");handlebars.PrintVisitor=printer.PrintVisitor;handlebars.print=printer.print;module.exports=handlebars;if(typeof require!=="undefined"&&require.extensions){var extension=function(module,filename){var fs=require("fs");var templateString=fs.readFileSync(filename,"utf8");module.exports=handlebars.compile(templateString)};require.extensions[".handlebars"]=extension;require.extensions[".hbs"]=extension}},{"../dist/cjs/handlebars":2,"../dist/cjs/handlebars/compiler/printer":11,"../dist/cjs/handlebars/compiler/visitor":12,fs:1}]},{},[]);var Handlebars=require("handlebars");Handlebars.registerHelper("uuid",function(obj){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(c){var r=Math.random()*16|0,v=c=="x"?r:r&3|8;return v.toString(16)})});Handlebars.registerHelper("page-helper",function(uuid,context){return'<div class="page" '+"data-uuid='"+uuid+"'"+context.fn(this)+"</div>"});var template=Handlebars.compile("{{#page-helper (uuid) }} hello {{/page-helper}}");alert(template({})); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"handlebars": "2.0.0" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<style type='text/css'>html, body { margin: 0; padding: 0; border: 0; } | |
body, html { height: 100%; width: 100%; }</style> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment